是“ia”整数数组,printf(“3 [ia]:%d \ n”,3 [ia]);为什么它有效?

时间:2015-03-21 22:46:19

标签: c arrays

#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中工作?

1 个答案:

答案 0 :(得分:1)

C指针算术的惊人世界:

ia[3]计算为*(ia + 3),与*(3 + ia)3[ia]相同。

你也可以写1[ia+2]3[ia-+!ia],甚至2[1+ia, ia+1] ...

除非您试图混淆和混淆随意的读者/维护者/代码审阅者,否则这些都不会出现在常规代码中。