在 C 中,指向另一个指针的指针用两个星号 **
表示。这是为了便于阅读还是有其他目的?我使用一个星号使一个指针指向另一个指针,我得到了相同的结果:
int main()
{
int a = 2;
int *p = &a;
int *p2 = p;
printf("val: %p", p2);
}
int main()
{
int a = 2;
int *p = &a;
int **p2 = p;
printf("val: %p", p2);
}
两者都给了我所指向的正确地址,那么给出了什么?
最佳答案
指针在运行时看起来是一样的。它们是出于语义原因而键入的。您基本上要问的是“为什么我需要给我的指针一个有意义的类型?”
在高级编程语言中,变量具有类型可以帮助清晰并允许编译器发现您可能会错过的错误。
关于C 指针到指针。为什么需要有两个星号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23073501/