此问题在此处已有答案:
const usage with pointers in C(6个答案)
2天前关闭。
我正在学习c语言,并试图弄清楚指针是如何工作的。我只是好奇这两个声明有什么区别:int i; int *const cip = &i; int const *cip =&i;
如果我遗漏了什么,请随时告诉我,先谢了.
此问题在此处已有答案:
const usage with pointers in C(6个答案)
2天前关闭。
我正在学习c语言,并试图弄清楚指针是如何工作的。我只是好奇这两个声明有什么区别:int i; int *const cip = &i; int const *cip =&i;
如果我遗漏了什么,请随时告诉我,先谢了.
1条答案
按热度按时间oxcyiej71#
本声明
声明一个指向int类型对象的常量指针。这意味着你不能改变指针的值。例如,你不能在声明之后写
在本声明中
声明了一个指向常量数据的指针。指针本身可以改变,但指针所指向的数据不能改变。因此,你不能写例如
最后这个宣言
声明一个常量指针指向常量数据。
如果声明一个类似于
下面的函数声明
声明相同的函数,因为在函数声明中忽略了限定符
const
。但是,在函数定义中会考虑限定符const
。如果将函数定义为
则在函数中不能更改指针。另一方面,如果将函数定义为
那么你可以改变函数中的指针。