首页 > 解决方案 > 行 *x=y 是否等于 c 中的行 x[0]=y

问题描述

在 c 中,使用 malloc 分配新的动态内存时:

int* x = (int*)malloc(sizeof(x));
int y = 10;

这条线是:

*x = y;

等于这一行:

x[0] = y;

标签: cequals

解决方案


运算符的定义[]是:给定ex1[ex2],保证等价于

*((ex1) + (ex2))

Whereex1ex2are 表达式。

在你的情况下x[0]== *(x + 0)== *(x)== *x

请参阅指针是否支持“数组样式索引”?详情。


推荐阅读