1、题目
牛牛正在学习C语言的const语言,它发现被const修饰变量不允许被修改,但是被const修饰的指针却不一定,想让你帮忙测试一下。现牛牛输入n,请你创建一个可以被修改的const指针变量p,将其初始化为n,请返回p++的结果。
2、思路
创建一个可以被修改的const的指针变量p
3、代码展示
int const_test(int n ) {
// write code here
const int * p = n; // OR int const * p = n;
p++;
return p;
}
4、输入输出实例
输入:
2
复制
返回值:
6
const int * p = n; 表示p指向0x2这个地址,p++表示地址+4(因为int是4bit),返回p指向0x2+4=0x6
通过这个实例,可以看出一个const int*定义的指针p 的值可以被改变
5、总结
(1)const含义:只要一个变量前用const来修饰,就意味着该变量里的数据只能被访问,而不能被修改,也就是意味着“只读”(readonly)。
(2)第一、二种常量指针 第三种指针常量 第四种 指向常量的常指针
//第一种
const int *p1; //p1本身不是const的,而p指向的变量是const
//第二种
int const *p2; //p2本身不是const的,而p指向的变量是const
//第三种
int* const p3; //p3本身是const的,而p指向的变量不是const
//第四种
const int* const p4; //p4本身是const的,而p指向的变量也是const