#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中工作?
答案 0 :(得分:1)
C指针算术的惊人世界:
ia[3]
计算为*(ia + 3)
,与*(3 + ia)
或3[ia]
相同。
你也可以写1[ia+2]
,3[ia-+!ia]
,甚至2[1+ia, ia+1]
...
除非您试图混淆和混淆随意的读者/维护者/代码审阅者,否则这些都不会出现在常规代码中。