常量指针在C语言中,常量指针是指不能改变其所指向变量的地址,即地址将保持不变。因此,我们可以说如果一个常量指针指向某个变量,那么它不能指向其他变量。 常量指针的语法<指针类型> * const <指针名称>; 常量指针的声明如下:
通过示例来理解常量指针 #include <stdio.h>
int main() { int a = 1; int b = 2; int * const ptr; ptr = &a; ptr = &b; printf('ptr的值为:%d', *ptr); return 0; } 以上代码解释如下:
输出结果 从上述输出结果可以看出,以上代码产生了错误:'assignment of read-only variable 'ptr''。这意味着指针'ptr'所持有的变量'ptr'的值是只读的。在上述代码中,我们试图将'ptr'的值从&a更改为&b,但这在使用常量指针时是不可能的。因此,我们可以说,指向某个变量的常量指针不能指向其他变量。 指向常量的指针指向常量的指针是指通过该指针指向的变量的值不能被更改。这些指针的地址可以更改,但指针所指向的变量的值不能更改。 指向常量的指针的语法const <指针类型> * <指针名称> 指向常量的指针的声明如下:
通过示例来理解。
#include <stdio.h>
int main() { int a = 100; int b = 200; const int *ptr; ptr = &a; ptr = &b; printf('ptr的值为:%u', ptr); return 0; } 以上代码解释如下:
输出结果 以上代码成功运行,并在输出中显示了'ptr'的值。
以上代码解释如下:
输出结果 以上代码显示了错误:'assignment of read-only location '*ptr''。这个错误意味着我们不能改变指针所指向的变量的值。 常量指针指向常量常量指针指向常量是指上述两种指针的组合。它既不能改变所指变量的地址,也不能改变该地址处的值。 语法const <指针类型> * const <指针名称>; 常量指针指向常量的声明如下:
通过示例来理解。 #include <stdio.h>
int main() { int a = 10; int b = 90; const int * const ptr = &a; *ptr = 12; ptr = &b; printf('ptr的值为:%d', *ptr); return 0; } 以上代码解释如下:
输出结果 以上代码显示了错误:'assignment of read-only location '*ptr''和'assignment of read-only variable 'ptr''。因此,我们得出结论:常量指针指向常量既不能改变地址,也不能改变所指向的变量的值。 |
|