关于const指针问题
int num= 434;const int cnum = 888;
const int * const p = #
const int * const *pp = &p;
请问这个指向p的指针*pp为什么定义的时候还要加两个const,应该是指向const指针的啊,*pp怎么还被const修饰了。求解 const int * *pp = &p;
这个const指的是pp指向的那个对象(p)不可改变
也就是这条语句报错
*pp = NULL;
这和下面这个同意
p = NULL;
int * const *pp = &p;
这个const指的是这个指针指向的对象,那个对象又指向的对象(num)
也就是这条语句报错
**pp = 1234;
这和下面这个同意
*p = 1234; 鱼币{:10_256:} 人造人 发表于 2020-5-4 19:28
这个const指的是pp指向的那个对象(p)不可改变
也就是这条语句报错
我应该打错了,第三行应该是&cnum,因为定义的时候是const int, Juniorboy 发表于 2020-5-4 20:35
我应该打错了,第三行应该是&cnum,因为定义的时候是const int,
#include <stdio.h>
int main(void) {
int num = 0;
int *p1 = #
const int *p2 = #
int *const p3 = #
const int *const p4 = #
*p1 = 123; // ok
p1 = NULL; // ok
//*p2 = 1234; // error
p2 = NULL; // ok
*p3 = 123; // ok
//p3 = NULL; // error
//*p4 = 123; // error
//p4 = NULL; // error
return 0;
}
本帖最后由 jkluoling1992 于 2020-5-4 22:54 编辑
{:10_257:} 贪财的我{:10_256:} 贪财的我
页:
[1]