我正在C语言中搜索指针,并且在给定的网站上发现了以下用法:
int main() {
int i;
int array[5] = {10, 20, 30, 40, 50};
for(i = 0; i < 5; i++) {
printf("%d\n", i[array]); /* Instead of "array[i]"" */
}
return 0;
}
它是如何发生的,为什么printf
函数理解这一点?
在C中,a[b]
本质上将变为*(a + b)
,因此,如果执行b[a]
,则将得到相同的*(b + a)
。这就是为什么此代码有效的原因。