两个程序的问题,本人新手

来源:百度知道 编辑:UC知道 时间:2024/06/22 11:37:19
#include <stdio.h>
main()
{
int x,y,a,b,c;
x=3;
a=x++;
b=x++;
c=x++;
y=a+b+c;
printf("\nx=%d",x,y);
}
运行其结果为x=6,y=12
为什么x等于6,y=12
\nx=%d是什么意思

#include <stdio.h>
main()
{
int m,n,p,q;
m=7;n=7;
m=m++;
n=n++;
printf("m=%d,n=%d\n",m,n);
p=m++;
q=++n;
printf("p=%d,q=%d\n",p,q);
}

其他的都为8,为什么q会变成9
解释下%d是什么意思,后面为什么要加\n

x++; 的意思是 x=x+1;
a=x++; 先使用x的值 再+1 。
所以a=x++; 如果x=3; a的值为3 x的值为4;
\nx=%d “\n”是换行符 %d 是输出整型值的意思!

这种题目根本没必要去理会,
x=3;
a=x++;
b=x++;
c=x++;
y=a+b+c;
在不同的编译器中得的结果可能不同。比如说TC和VC运算的结果可能就不一样,现在都没有考这种题目的了。如果要解释的话,就如一楼所说的那样。

只想说一点 m = m++ 这种语句,标准明确说这是无效语句, 所以不要相信它产生8或者9或者类似的说法, 哪个老师教你这个你就朝他脸上吐口水