|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
为什么打印的顺序是倒的?(如图)
- #include<stdio.h>
- int main()
- {
- int s[10] = {10, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- int *p;
- p = s;
-
- printf("%d\n%d\n%d\n",*p, *(p++), *(p++));
-
- return 0;
- }
复制代码
这涉及到参数从右向左执行,但有的编译器是从左向右。
- printf("%d\n%d\n%d\n",*p, *(p++), *(p++));
复制代码
在这里,printf本身也是一个库函数。这里,我们都知道,p++要到下一步才能执行,所以第三个数为10,第二个数是1,第一个数是2。这里要注意,尽管程序执行是从右向左,但是输出的时候仍是按照从左向右。所以这里你看到的是这样的2,1,10。
- printf("%d\n%d\n%d\n",*p, *(p+1), *(p+2));
复制代码
等价于
- printf("%d\n%d\n%d\n",p[0], p[1], p[2]);
复制代码
|
|