This question already has answers here:
With arrays, why is it the case that a[5] == 5[a]?
(18个回答)
4年前关闭。
}
为什么该行在C中工作?
(18个回答)
4年前关闭。
#include <stdio.h>
int main(int argc, char *argv[]){
int *ia[5]={0,1,2,3,4};
iap=ia;
printf("ia[3]:%d\n",3[ia]);
return 0;
}
为什么该行在C中工作?
最佳答案
C指针算法的神奇世界:ia[3]
计算为*(ia + 3)
,与*(3 + ia)
或3[ia]
相同。
您还可以编写1[ia+2]
或3[ia-+!ia]
甚至2[1+ia, ia+1]
...
除非您试图使普通的阅读器/维护者/代码审阅者感到困惑和困惑,否则这些都不应该出现在常规代码中。
关于c - 是“ia”一个整数数组,printf(“3 [ia]:%d\n”,3 [ia]);为什么行得通? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29188935/
10-13 02:13