发新话题
打印

[已解决] 关于赋值语句的问题

关于赋值语句的问题

先不要在意这个程序干什么的,重点在这里:看那几个赋值语句后的分号(红色的),这些分号是c语法要求的,可郁闷的事就在这里:把这些分号全部改成逗号再编译,cao,vc++6.0,竟然没error也没warning,运行也一切正常,得出的结果也正常,为什么啊?

#include<stdio.h>

void main()
{
 int a,b,c;
 long int u,n;
 float x,y,z;
 char c1,c2;
 a=3;b=4;c=5;
 x=1.2;y=2.4;z=-3.6;
 u=51274;n=128765;
 c1='a';c2='b';
 printf("\n");
 printf("a=%2db=%2dc=%2d\n",a,b,c);
 printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);
 printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);
 printf("u=%6ldn=%9ld\n",u,n);
 printf("c1='%c' or %d(ASCII)\n",c1,c1);
 printf("c2='%c' or %d(ASCII)\n",c2,c2);
}

[ 本帖最后由 whitehacker 于 2008-7-24 11:36 编辑 ]

TOP

逗号表达式呗,都是写赋值运算
Welcome to JAFTBlog:http://blog.icybear.cn

TOP

赋值也是表达式,所以有a=b=c的写法

TOP

LZ用DEV Debug下~
MS,可以并列多个语句~(我瞎猜的)
因为我调试的时候,只要最后一句有;就可以了~

TOP

引用:
原帖由 Icybear 于 2008-7-23 07:54 PM 发表
逗号表达式呗,都是写赋值运算
晕,逗号表达式不是这么用的吧~~

TOP

引用:
原帖由 KingsamChen 于 2008-7-23 08:05 PM 发表
LZ用DEV Debug下~
MS,可以并列多个语句~(我瞎猜的)
因为我调试的时候,只要最后一句有;就可以了~
不好意思,偶还不会Debug~~
另外,最后一句也是逗号,程序运行也没问题~

TOP

引用:
原帖由 whitehacker 于 2008-7-23 20:55 发表

晕,逗号表达式不是这么用的吧~~
怎么用都可以吧= =
Welcome to JAFTBlog:http://blog.icybear.cn

TOP

你管他干吗,要么是C99的标准支持,就算不是,编译器也支持~
你要研究,去看C99好了~

TOP

呀~~大家的回答有点暴力啊~~
小弟领教了~~

TOP

.

如果是一个句子中的话……中间肯定可以用逗号,但是其他……看来只能证明M$太T,M,D人性化了……
blog.0snut.cn有种进我的博客!

TOP

回复 6楼 的帖子

赋值是表达式,所以可以用逗号连接,也可以单独作为语句。没有分号的话是按一条语句处理的:
a=1,b=1;
和:
a=1,
b=1;
是一样的,换行被忽略。
但最后的一个(c2='b'和printf直接的)一定是分号

TOP

学习拉!

TOP

发新话题