大侠,同样是逗号表达式,为什么b*2不赋值,而a+5赋值了呢?
求编程大侠解答!一个C语言逗号表达式和括号的问题
逗号很好办,逗号就是单纯分隔两个式子,括号的主要作用是将括号内的运算式子作为一个整体,也有优先运算的含义(这个含义和数学上是一样的)对于你的这段程序,首先说b,原式是(b=4*5, b*2), b+6 首先计算b=4*5,此时b=20,然后算逗号后的式子就是b*2,注意这里没有说把结果赋值给b,所...
c语言小代码,逗号表达式的问题
a=3*5, a*4 你是误会在这里了 =赋值运算比逗号的优先级更高,所以这里是先计算a=3*5=15,然后a*4只是单纯的一个值,并不会有a=a*4这样的计算。所以 里面的逗号运算符最终只做到一个效果 就是a=15 于是最终值是 a=a+5=15+5=20 ...
C语言逗号表达式的问题?
如果是((x=a+b),(b+c))实际上可以看成(6,10)整个逗号表达式的值应该是10 但这是错的,这儿还有赋值运算符。赋值运算符的优先级是14,而逗号表达式的优先级是15,也就是说上面的表达式中 y=(x=a+b),(b+c);应该等价于这样的结合:y=x,10;如果这样写的话,则答案很清晰,为:6 提示...
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语言中逗号表达式的问题
逗号表达式 a+2,c+2 的值就是最后一个逗号后的表达式的值,即c+2的值,不过前面的也要计算。所以逗号表达式 4,99 的值就是99咯。有时候前面的计算可能后影响最后一个表达式的值,所以,得到结果虽然是最后一个表达式,但前面的也得先计算。eg: c='a'; 则表达式 s=(c++,c+2)=100; c先...
c语言逗号表达式的问题
逗号运算符的做优先级是最低的,所以要先算赋值运算符.y=(x=a+b),(b+c)是一个表达式,包括两部分:表达式1是一个赋值表达式,表达式2是一个算术表达式.老谭的书里说的是整个逗号表达式的值是表达式2的值,所以,整个逗号表达式的值是b+c,y的值是表达式1的值,即a+b.他写错了.这样写就对了y=(...
C语言逗号表达式问题
c语言逗号表达式是由左向右进行的:k=3*2=6,K+2=8,表达式返回8。逗号表达式用法:当顺序点用,结合顺序是从左至右,用来顺序求值,完毕之后整个表达式的值是最后一个表达式的值。示例:main(){int a,s,d;s=2;d=3;a=12+(s+2,d+4);} ...
C语言菜鸟提问,关于逗号表达式。请看我下面的例子
这么来看y=(x=a+b)是逗号的前一个语句,那么y就等于6;而(b+c)是逗号的后面一个表达式 你这样看看:加一个变量:int z;z=(y=(x=a+b),(b+c));这样z就等于(b+c)了,那么总结出来:要得到一个逗号表达式的值是要将这个逗号表达式用括号括起来的!!
C语言中括号运算符的问题
(a=10,b=a+5)这是一个逗号表达式,它将以逗号为界,从左到右依次计算每个表达式的值,最后返回最右边的表达式的值,具体到这个式子就是:先计算a=10,然后再计算b=a+5,所以b=10+5=15,并且最后返回b的值,也就是15
c语言 逗号表达式问题
2、逗号表达式是所有运算符中最低的,为十五,也就是说把其它都算完了才轮到它,程序中应该是先将x++的值负给z,然后算y++,最后算++y,如果按你想的那样,赋值语句该写成z=(x++,y++,++y); ,加上一个括号。 手机写的,光换输入法就累死了!