c语言一问

来源:百度知道 编辑:UC知道 时间:2024/09/28 14:17:25
int main(void)
{
int num;
int status;

printf("please enter an integer to be summed.");
status=scanf("%d",&num);/*此处的意思是不是先给num赋值,然后将
num的值赋给status??*/
printf("%d",status);

return 0;
}

运行结果:
please enter an integer to be summed. 10(回车)
1 (---显示的结果)

为什么?谢谢

status=scanf(“%d“,&num);

此处是调用scanf函数,通过输入给num赋值。同时如果将scanf执行的结果赋值给status,注意scanf执行成功则返回值为1,如果不成功通常返回值为-1或0.这里的返回值只是对scanf执行结果的判断,而给num赋值是scanf实际执行的内容。

所以赋值成功了,num=10,status=1

status=scanf("%d",&num);/*此处的意思是不是先给num赋值,然后将
num的值赋给status??*/
不是的
scanf的返回值有后面的参数决定
scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
且返回值为int型.
因此 程序结果为1