C语言初学者很简单很简单的问题3

来源:百度知道 编辑:UC知道 时间:2024/06/01 07:44:48
一,inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf("%d,%d,%d\n",a,b,c);

二,int i=-200,j=2500;
printf("(1)%d,%d",i,j);
printf('(2)i=%d,j=%d\n",i,j);
printf("(3)i=%d\nj=%d\n",i,j);
的输出结果
和每一步骤的详细说明

三,为什么
若a、b、c、d都是int型变量且初值为0,以下选相中正确的是:a=b=c=100

合法的C语言赋值语句是:a=b=58 这个却是错误的

一、
输出:
0,0,5

c=(a-=a-5),(a=b,b+3);
中,(a-=a-5)可看为(a-=(a-5))
因为a=0
所以执行完后a=5赋给c
继续执行a=b后a=0

二、
输出:
(1)-200,2500(2)i=-200,j=-2500
(3)i=200
j=2500
在格式化字符串中,%d是说拿后面对应位置上的一个整型数据将其替换,\n是换行,其余字符原样输出

三、
没错,我用 Turbo C/C++ for windows 正常执行,无错误
请检查其它异常

第三个问题中的a=b=c=100的赋值方式是错误的,在c语言中是不能用连等的方式来赋值,我用vc试过两种情况,全部都出现错误。

a=b=c=100
这条语句要看用在什么地方
如果是定义的时候
如:
int a=b=100 ; 这就是错误的,由于b并没有被定义 所以系统认为a=b是一个标识符(不符合定义规则)。
如果是下面这种情况就是对的
int a,b;
a=b=100;这就是对的。