此c语言题目结果?

来源:百度知道 编辑:UC知道 时间:2024/07/05 05:49:47
#include<stdio>
main()
{
int a,b,c,d;
int *p;
a=1;p=&a;b=2;c=3;d=4
printf("a=d%\n",*p);
c=c+*p++;
d=(*p)++;
printf("a=d%,b=d%,c=d%,d=d%,*p=d%\n",a,b,c,d,*p);
}
我觉得输出结果是a=1
b=2,c=4,d=2,*p=2
可是正确答案不是这样的,请高手指点,谢谢!
只是最后输出语句没注意打错了
这道题我已经想通了
正确结果应该是a=1
a=1,b=3,c=4,d=2,*p=3
我刚刚开始学c语言,还请大家包涵
有兴趣的就琢磨琢磨吧

是你的输出格式的问题应该改为
printf("a=%d,b=%d,c=%d,d=%d,*p=%d\n",a,b,c,d,*p);
注意%要放在d的前面。
#include<stdio> //stdio.h
main()
{
int a,b,c,d;
int *p;
a=1;p=&a;b=2;c=3;d=4 //加分号
printf("a=d%\n",*p);
c=c+*p++; //这样p就指向了下一个地址了 ,是一个未知的,不定的值。
d=(*p)++;
printf("a=d%,b=d%,c=d%,d=d%,*p=d%\n",a,b,c,d,*p);
} //即使输出改过以后 d和 *p也得不到拟想要的值。

c=c+*p++;
这里有问题吧
*p++由于++运算级高于*所以就成了*(p++)..这个指向就无意义了

无聊

拜托,抄题时,看清楚