文章目录
前言
关于指针这部分内容,const与指针的关系也非常重要,而这部分也是一个难点,我们要了解清楚const对指针的哪些部分限定,然后通过画图进行分析,下面我将通过一些例题让这部分知识进行巩固
一、const与一级指针的关系
1.第一段代码如下:
int main() {
int a = 0, b = 0;
const int* p = &a;//const 放在指针前面,修饰p的指向内容,不能做修改
*p = 10;//错误
p = &b;//正确
}
我们对代码进行画图分析
2.第二段代码如下:
int main(){
int *const p=&a; //const放在指针后面,修饰p变量本身,p值不能被修改
*p=10; //正确
p=&b; //错误
}
我们对代码进行画图分析
二、const与二级指针的关系
第一段代码如下:
int main() {
const int a = 0;
const int* p = &a;
const int** t = &p; //(const只对** t进行了限定)
** t = &a;//错误
p = &a;//正确
}
我们对代码进行画图分析
第二段代码如下:
int main(){
const int a=0;
const int *p=&a;
const int *const*t=*p;//const既对**t进行了限定,又对*t进行了限定
*t=&a;//错误(const对*t进行了修饰,所以不能对*t进行修改,所以这条语句是错误的)
p=&a;//正确(对于p来说对const对它没有进行一个限定,所以这条语句是正确的)
}
我们对代码进行画图分析
总结:在学习指针与const的关系这一块内容的时候,我们要知道在使用const修饰指针的时候一定要考虑const所修饰的作用域,这样子想的话问题就会变得简单很多。