怎么有效的去头皮屑:有关C语言的问题2

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 13:25:29
下列程序的输出结果是__
#include<stdio.h>
void p(int *x,int *y)
{++x:
--*y;
}
void main()
{int x=0,y=3;
p(&x,&y);
printf("(%d,%d)",x,y);
}
A(0,2) B(0,3) C(1,3) D(1,2)
并解释一下原因!~~~~~~~谢谢!~~~~~~~

应是A吧.如果优先级没记错的话
为说起来方便P函数改成
void p(int *a,int *b)
{++a;
--*b;}
这样的话++a只指把指针下移,别没改X中内容,
--*b是把b指针指向的地址内的内容减一,这时b指针指的是y的地址所以y减了一

这种C语言的语法问题最没有意思的了,谁写程序这样搞呀,不实用的东西就不要研究。

D。先执行++、--操作后输出,即x=x+1,y=y-1。如果是x++、y--的话选B,在执行输出之后执行运算操作,即x=1,y=2。

选A,我上机试过,理由如zgtong23 所说

A.x改变的是它的地址,y的值减一