This question already has answers here:
With arrays, why is it the case that a[5] == 5[a]?
                                
                                    (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