C语言的表达式这样写是合法的吗?a=(b=4)+(c=6);这是一个C语言视频教程中的例子,但在C程序中试验却不能通过,不知错在哪里,#include"stdio.h"void main(){int a,b,c;a=(b=4)+(c=6);printf("%d\n",a);}看到大家的回

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 05:28:27

C语言的表达式这样写是合法的吗?a=(b=4)+(c=6);这是一个C语言视频教程中的例子,但在C程序中试验却不能通过,不知错在哪里,#include"stdio.h"void main(){int a,b,c;a=(b=4)+(c=6);printf("%d\n",a);}看到大家的回
C语言的表达式这样写是合法的吗?a=(b=4)+(c=6);
这是一个C语言视频教程中的例子,但在C程序中试验却不能通过,不知错在哪里,
#include"stdio.h"
void main()
{
int a,b,c;
a=(b=4)+(c=6);
printf("%d\n",a);
}
看到大家的回答,我在VC++6.0下确实能够通过,输出为10,正确.但在turbo C windows1.0下却还是通不过,提示:
Turbo C 汉化版 2.0 版权所有 (c) 宝兰国际公司 & 软景工作室 1998.6
temp.c:
警告?temp.c 7:'c' 指定一个值给从未使用过的哪一个 在函数
警告?temp.c 7:'b' 指定一个值给从未使用过的哪一个 在函数

C语言的表达式这样写是合法的吗?a=(b=4)+(c=6);这是一个C语言视频教程中的例子,但在C程序中试验却不能通过,不知错在哪里,#include"stdio.h"void main(){int a,b,c;a=(b=4)+(c=6);printf("%d\n",a);}看到大家的回
在TC和VC下都能编译通过,而且输出为10
a=(b=4)+(c=6);
()优先级最高,所以先处理()里面的表达式,这样b=4,c=6,a=4+6.
如果不加(),那么a=b+4+c=6将是错误的赋值语句,因为+优先=,所以先处理b+4+c,这样等号左边出现常量4是非法的.