discuz可以做商城网站吗,门户网站规划,软件培训,建立网站谁给你钱目录
代码段
定义引用变量的技巧
内存某处
正误判定技巧
温故知新 代码段
定义引用变量的技巧
// 定义引用变量的技巧#includeiostream
using namespace std;int main()
{int a 1;int * p a;// 首先#xff0c;定义一个指针变量int * * q1 p;// 然…目录
代码段
定义引用变量的技巧
内存某处
正误判定技巧
温故知新 代码段
定义引用变量的技巧
// 定义引用变量的技巧#includeiostream
using namespace std;int main()
{int a 1;int * p a;// 首先定义一个指针变量int * * q1 p;// 然后将符号移动到*符号的位置覆盖*符号int * q2 p;// int * * q1 p; int * q2 p;// 按照这种方式最终q2是一个引用变量return 0;
}
内存某处
// 内存某处#includeiostream
using namespace std;int main()
{// 内存0x0018ff56处int * p1 (int *)0x0018ff56; // 正确写法1int * p2 (int *)0x0018ff56; // 正确写法2int * const p3 (int *)0x0018ff56; // 正确写法3// const int * p4 (int *)0x0018ff56; // 错误写法return 0;
}
正误判定技巧
// 正误判定技巧#includeiostream
using namespace std;int main()
{int a 1;int * p a;// const int * q p; // 错误// 将const int * q p;还原成const int * * q p;// 因为const int * * int * *是错误转换// 所以const int * q p;错误return 0;
}
温故知新 1、注意理解正确转换和错误转换具体可参考文章const和指针的结合中的正误转换 2、如果const右边没有指针*那么const不参与类型 // 1
int a 1;
int * p a;
// int * int *正确
int * q p;
// 将int * q p;还原成int * * q p;
// int * * int * *正确// 2
int a 1;
int * const p a;
// int * int *正确
int * q p;
// 判定方法1
// 将int * q p;还原成int * * q p;
// int * * int * const *错误
// 判定方法2
// 将int * q p;还原成int * * q p;
// int * * q p;代表将常量p的地址泄露给普通指针q
// 那么通过q解引用就有将常量p修改的风险所以错误// 3
int a 1;
const int * p a;
// const int * int *正确
int * q p;
// 将int * q p;还原成int * * q p;
// int * * const int * *错误// 4
int a 1;
int * p a;
// int * int *正确
const int * q p;
// 将const int * q p;还原成const int * * q p;
// const int * * int * *错误