对于下列程序,正确的是

[复制链接]
查看11 | 回复1 | 2013-5-26 12:31:06 | 显示全部楼层 |阅读模式
void f(int *p){
*p = 5;}int main(void){
int a, *p;
a = 10;
p = &a;
f(p);
printf("%d", (*p)++);
return 0;}A.5B.6C.10D.11答案是A因为这个是按地址调用,所以在子函数f()中已经改变了a的值,而打印时是先输出a的值,之后再对a进行增1操作你可以在return 0;前加上一句 printf("%d", *p);就会发现在5的基础上新输出了一个数字6....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行