Chinaunix首页 | 论坛 | 博客
  • 博客访问: 932790
  • 博文数量: 104
  • 博客积分: 1919
  • 博客等级: 上尉
  • 技术积分: 1910
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-21 16:33
文章分类
文章存档

2016年(4)

2015年(1)

2014年(6)

2013年(16)

2012年(27)

2011年(49)

2010年(1)

分类: LINUX

2010-12-21 16:38:01

#include

void main()
{
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++) += 123;
printf("%d,%d\n",*ptr,*(++ptr));
}

==============================

C中printf计算参数是从右到左压栈的,所以",*ptr,*(++ptr)"是一样的。

# ./test

阅读(1554) | 评论(4) | 转发(1) |
0

上一篇:没有了

下一篇:寻找可执行文件链接库的方法

给主人留下些什么吧!~~

GFree_Wind2012-08-22 11:50:34

压栈顺序,都是可以根据编译选项调整的。

聆音听墨2012-08-21 18:26:54

这涉及到函数的调用方式吧!

gongping112012-08-21 16:06:08

据说这个题是本身是一个有问题的题目,虽然我们通常认为函数的参数压栈顺序,但是C语言中好像并没有说明。

Bean_lee2012-08-21 13:11:25

压栈顺序,可以调整