Guy*_*uyB -1 c malloc pointers equals
我对 C 语法感到困惑。如果我分配内存:
int* x = (int*)malloc(1 * sizeof(int));
Run Code Online (Sandbox Code Playgroud)
int 指针的这两个代码片段是否相等?
*x = 0;
Run Code Online (Sandbox Code Playgroud)
和
x[0] = 0;
Run Code Online (Sandbox Code Playgroud)
运算符的定义[]是:给定ex1[ex2],保证等价于
*((ex1) + (ex2))
Run Code Online (Sandbox Code Playgroud)
其中ex1和ex2是表达式。
在你的情况下x[0]== *(x + 0)== *(x)== *x。
请参阅指针是否支持“数组样式索引”?了解详情。