在C语言中,* p表示存储在指针中的值,p表示该值的地址,称为指针。
const int *和int const *表示指针可以指向常量int,并且该指针指向的int值不能更改。但是我们可以更改指针的值,因为它不是常量,并且可以指向另一个常量int。
const int * const表示指针可以指向一个常量int,并且该指针指向的int值不能更改。而且我们也不能更改指针的值,因为它现在是常量,并且不能指向另一个常量int。
Thumb规则是从右到左命名语法。
// constant指向常量int的指针 const int * const //指向常量int的指针 const int *
取消注释注释的错误代码,然后查看错误。
#include <stdio.h>
int main() {
//示例:int const *
//注意:int const *与const int *
const int p = 5;
//q是指向const int的指针
int const* q = &p;
//分配无效
//p的值不能更改
//错误:分配了只读位置“ * q”
//* q = 7;
const int r = 7;
//q可以指向另一个const int-
q = &r;
printf("%d", *q);
//示例:int const * const
int const* const s = &p;
// 分配无效
//s的值不能更改
//错误:分配了只读位置“ * s”
//* s = 7;
// 分配无效
//不能更改
//错误:分配只读变量's'
// s = &r;
return 0;
}输出结果
7