C语言 表达式(j=3, j)的值是
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/12 20:52:40
(1)表达式有问题(4)j=13至于下面的k等于多少,估计只有你知道了
首先,这是一道考区分"表达式"与"表达式的值"的题.我们要注意,表达式也是有它自己的值的.一、逗号表达式(表达式1,表达式2,...,表达式n)采取从左到右顺序求值,并把最后一个逗号后的表达式的值作为
答案有误吧,我在VC++6.0下运行结果:
首先,它是个赋值句X=的问题,i=4.j=16,k=32是逗号表达式,逗号表达式的值是由最后一个逗号表达式决定的,所以(i=4,j=16,k=32)的结果是k=32.连起来就是X=k=32即k=32.
首先要理解前++的意思是先加1,再使用,即:++i可分成两个表达式:i=i+1,i按此思想去分析:i=1,j=4,k=5i=++j,运行后,先算j=j+1=5,然后i=j=5j=++k先算k=k+1=
涉及到优先级问题,不同的编译器可能会有不同的结果,而且这么写纯属自找麻烦,正常是不会这样写代码的.
++j表示j先自加,然后返回j,此时j=4,(++j)的值为4j++表示返回j后自加,此时j=4,(j++)的值为4所以表达式的值为8,表达式算完之后,j=5
对于逗号表达式,其整个表达式的值为最后一个表达式的值,所以(j=3,j++)表达式的值最后就是j++的值,因为j++是先返回j的值然后j累加1,所以最后(j=3,j++)的值是3,但是j是4.
结果为8;具体可以分为下面的步骤:k=k+(i>j?i++:--j);首先判断i是否大于j,即(i>j?i++:--j),因为这里i和j相等,所以这里的结果为--j,即(i>j?i++:--j)=--
上面等价于下面这个式子:k=(i-j?i+j:(i-3?j:i))1先做(i-3?j:i)这个运算,意思是i-3为非0,则式子的值为j,否则为i;2再(i-j?i+j:(i-3?j:i))这个运算,意
不正确,i+++++j,被识别为i+++++j,而i++不是左值,所以这个表达式是不正确的.若要表达(i++)+(++j),需要写成i+++++j.
这个就一行语句就解决了哦,#includeintmain(void){intj=9,y=-(j--)-2;printf("-(j--)-2的值为%d\n",y);printf("j的值为:%d\n",
p不为0且j
不是运算符取整,之所以取整的原因是,类型转换!数据类型的转换一般分为隐含转换和强制转换两种;隐含转换算术运算符关系运算符逻辑运算符赋值运算符等二元运算符要求两个运算符的类型一致,算术运算关系运算中参与
可以看成是j=(!c)&&(i++)如果c是非零的数!c就是0,j的值就是零如果c是0,就看i,i为非零数j的值就是1,如果i为零,j的值就是0--------------物联网校企联盟技术部
表达式(j=3,j++)的值为3,j=4
你没写错吧?再问:没有。。再答:那2(j=3-2)是什么意思啊?是2*(j=3-2)吗?或者说2后面直接就是括号吗?
i的初始值是2j=(++i)+(++i)+(++i);是将(++i)+(++i)+(++i)的结果赋值给j对于不同的编译器,(++i)+(++i)+(++i)执行的顺序可能不同但对于本题不影响,我们就
表达式的值就是逗号运算符最右边的值最后结果是k=4j=5再问:初学者,不太明白,嘻嘻。。。j为什么是5呢?中间两个要不要算的?再答:(j=3,j+2,++j,j++)括号里的这些表达式都是有效的j=3
j++的值还是J,但是在","之后,J的值变为3,然后执行++J,值为4,后面依次执行.