VC++豆号表达式问题达人进!

1 关于豆号表达式到底是什么啊?

2 按我理解 int a,b,c,d=0;这句中a,b,c,d不都应是0吗?为什么VC++6中只有d是0啊????

变量声明的时候的逗号只是分割符,不是操作符,所以只有d=0

逗号表达式是这样的:
int a = 1, b = 2, c = 3;
int d = a*2, b*2, c*2;//逗号表达式
此时d=6;//c*2;
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-01-11
1.豆号表达式:
按从左到右顺序计算,但只有最右侧的运算语句决定输出结果.
2.你那只是声明了int类型的4个变量,且只给d赋初值0,所以只有d是0.如果是这样:
int a,b,c,d;
a=b=c=d=0;
或者直接int a=b=c=d=0;
这样a,b,c,d才都应是0.
在这里的豆号不是表达式!!只是分割符!!
第2个回答  2008-01-11
vc++中,是最低的运算符。
int a,b=0就表示定义两个整数,并且b=0但是a不等于0.

VC++豆号表达式问题达人进!
int a = 1, b = 2, c = 3;int d = a*2, b*2, c*2;\/\/逗号表达式 此时d=6;\/\/c*2;

C语言中逗号表达式的问题
逗号表达式的运算级最低,比赋值运算符级别还低。所以 y=(x=a+b),(b+c);先算x=a+b=6,再y=x=6;而后面的b+c不影响x和y的值。所以最终x,y的值都是6.只不过 y=(x=a+b),(b+c);这整个式子的值是b+c=10而已。如果是y=((x=a+b),(b+c)); 那么才结果是x=6,y=b+c=10...

c语言 逗号表达式问题
输出正确,你有两个错误 1、关于i++,运算规则是:先使用,后加1,所以z=x++中z的取值是1,而内存中的x是2。 2、逗号表达式是所有运算符中最低的,为十五,也就是说把其它都算完了才轮到它,程序中应该是先将x++的值负给z,然后算y++,最后算++y,如果按你想的那样,赋值语句该写...

C语言自增运算符及逗号表达式的小问题
正确答案错了,vc跑出来的3.10是正确的 首先(++a,b++) a先加加b直接取值在加加 得到(2,3)结果为 3 然后 a+b+c 为 2+3+5 结果为10 (后缀++,为遇到;或}时,算作一个程序块结束时进行加加,所以当运行完printf("%d,%d\\n",(++a,b++),a+b+c);句时b的值才为4)...

VC中c=(a+=a+2),(a=b,b+3); 这个语句是什么意思?
意思是指把表达式(a+=a+2)的值赋给c;比如,当a=1;a+=a+2的值为4;无论b为什么值,跟c无关。后面的(a=b,b+3)是逗号表达式,相当与for语句的时候的例子 for(i=0,j=0;i<10;i++)中逗号的作用,只是作为分隔。

逗号表达式
...你这个是初始化,a、b是都没有赋值的,只有c是赋0的,但是用在别的地方就不同了,例如,调用函数 fun(n){……} main(){ int y,a,b,c=0;y=fun(a,b,c) \/\/这就是逗号表达式 所以n应该接受到的是c的值 }

c语言中的逗号运算符
逗号表达式,结果为最后一个表达式的值:int a=6;a=(3*5,a*4);printf("%d",a);得 24.如果 int a;a=(3*5,a*4);printf("%d",a);呢?VC++编译器认为:由于a*4时a没有值,所以得乱七八糟的结果。double x;x = 4444.333*4444.333;或 x = 4444.333l * 4444.333l;(用 尾巴...

关于C语言必须背会的知识点学生收藏
7、逗号运算符的级别最低,赋值的级别倒数第二 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。3、一个C语言程序有且只有一个main函数,是程序运行的起点。第二节、熟悉vc++ 1、VC是软件,用来运行写的C...

a=4; b=(a++)+(a++); a,b分别等于什么
这时其实 a的值是6 b=9;很奇怪把。其实也简单,C++中表达式是从左到右计算的。刚开始时a先把值赋给(a++),即前面(a++)值为4,的然后才把a++的值写到a中, a变为5。同理紧跟着又有一个(a++),先把a的值5赋给(a++)。所以b=9。系统接着把(a++)==6写到a所对应的内存单元中;你...

c语言printf("%d,%d\\n",(++x,y),y++);是什么意思
printf("%d,%d\\n",(++x,y),y++); 先输入y在输出y++ ,(++x,y)逗号运算返回最后一个即y 不同编译器,对于运算顺序没有统一,有点先y++,在(++x,y),有的相反。

相似回答
大家正在搜