use*_*164 0 c c++ arrays pointers pointer-to-pointer
我有一个关于数组指针语法的问题。好吧,我们知道数组本身就是指针(我们的大学教授说的)所以为什么当我们用另一个指针(将是指向指针的指针)指向它们时,我们使用以下语法:
int array[10];
int *pointer = array;
Run Code Online (Sandbox Code Playgroud)
而不是这种语法:
int array[10];
int **pointer = &array;
Run Code Online (Sandbox Code Playgroud)
虽然我知道这使用 malloc 是正确的,但为什么不以正常方式,这是编译器或语法的事情还是我在其他地方错了??
告诉你的教授他们错了。数组不是指针。数组可以衰变为指针,但他们都没有指针。
int* pointer = array;声明一个指向 中第一个元素的指针array。
int** pointer = &array;是不正确的。如所提到的通过jschultz410中的注释的类型&array是不 int**,它是int (*)[10]又名的指针的10个整数的数组,其不能衰变int**。
| 归档时间: |
|
| 查看次数: |
351 次 |
| 最近记录: |