pa常指针,为什么改成*pa = (int)&a;能编译过?
发布网友
发布时间:2022-05-10 07:35
我来回答
共2个回答
热心网友
时间:2023-11-21 19:23
因为*pa是指向a的值,你只是改变了pa指向变量的值,而不是试图将pa指向别处(pa指向a的),所以是可以通过的,你可以输出下a,a的值应该是变了,不是10了,变为a的存储地址了
热心网友
时间:2023-11-21 19:23
int
*const
pa=&a;
这是说指针pa指向不能变,也就是指针pa永远只能指向变量a
但是没有说指针指向的内容不能变吧,
也就是*pa
=
(int)&a;
就是相当于a=(int)&a;么
要让对*pa赋值编译错误的话,应该是定义为
int
const
*
pa=&a;
*pa=a;
int
const
*pa=&a;
int
*const
pa=&a;
这几个是不一样的