我讲这个的目的就是让大家能够对运算符的优先级和结合性有更深刻的认识,还有大家能够对下标运算有更深刻理解。这是我给大家讲这个的目的。
1 #include<stdio.h>
2 #include<stdlib.h>
3
4 int main(int argc,char *argv[])
5 {
6 int nums[3][3]={1,2,3,4,5,6,7,8,9};
7 printf("%d\n",nums[1][-2]);
8 printf("%d\n",(-1)[nums][5]);
9 printf("%d\n",-1[nums][5]);
10 }
输出如下
2
3
-9
有的同学可能看得不是很懂上面的输出,现在我们在看下面的这一串代码
#include<stdio.h>
2 #include<stdlib.h>
3
4 int main(int argc,char *argv[])
5 {
6 int nums[3][3]={1,2,3,4,5,6,7,8,9};
7 printf("%d\n",nums[1][-2]);
8 printf("%d\n",(-1)[nums][5]);
9 printf("%d\n",-1[nums][5]);
10 printf("%d\n",1[nums][5]);
11 printf("%d\n",-2[nums][0]);
12 printf("%d\n",-100);
13 return 0;
14 }
输出是
2
3
-9
9
-7
-100
我想经过上面的输出大家大概明白了大概是怎么回事,我想说的是下标运算不只是 地址[下标]这么运用,也可以 下标[地址],至于最上面的输出是3,-9,是因为优先级和结合性的原因,[]和()的优先级是最高的,结合性是从左到右边的,因为有一个-号所以输出的是-9。所以在今后的学习中在看不清楚的时候,不妨多看一看有限级和结合性标,特别是不清楚一个指针的类型的时候,或者是结构体的类型的时候,都能够有很大的帮助。