真的存在“ void foo(int * const * p)”之类的东西吗?

时间:2019-06-05 21:08:17

标签: c

#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);
} 

//它显示了编译时错误。谁能解释一下

2 个答案:

答案 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()

之前
相关问题