#include<stdio.h>
int main()
{
int i = 11;
int *p = &i;
foo(&p);
printf("%d ", *p);
}
void foo(int *const *p)
{ int j = 10;
*p = &j;
printf("%d ", **p);
}
//它显示了编译时错误。谁能解释一下
答案 0 :(得分:5)
int *const *p
p
是指向int
的常数指针。
您可以自己更改p
;
您不能更改*p
;
您可以更改**p
。
void foo(int *const *p)
{ int j = 10;
*p = &j; // nope
printf("%d ", **p);
}
答案 1 :(得分:1)
在代码中,您在调用该方法后定义了该方法,因此应将其放在main()