今天给各位分享c语言a=3的知识,其中也会对C语言a=3,a++,3*a+2进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
C语言:a=3,a+=a-=a*a,求a
执行该语句的结果为-12,没有错误。注意赋值运算符的顺序为自右到左。计算过程如下:首先执行a*a=9,然后a-=9=(a=a-9)=-6,执行后a=-6,然后执行a+=a=(a=a+a)=-12。所以说正确答案是-12。
先算a*a=9 再算a-=9 这样a=-6 再算a+=-6 就是a=-6-6=-12 任何一个表达式的最后加一个分号都可以成为一个语句。一个语句必须在最后出现分号。表达式能构成语句是C和C++语言的一个重要特色。
解析:根据算术运算符的优先级,应该是先算乘法,即a*a=3*3=9,于是该式子变为a+=a-=9,注意此时a值依然为3。
a+=a-=a*a是一个连续赋值运算,计算顺序是自右至左的。
+=,-=,*=等都是双目运算符,运算顺序从右自左,a+=a可翻译为a=a+a,其他类似。
表示“非”,是一种逻辑运算。若a的真值为1,则!a为0;若a的真值为0,则!a为1。
C语言a=3;a+=(a1)?a:1;printf(%d,a);结果是?
首先,a= 3故(a1)不成立,所以,a+=1所以a= a+1 = 3+1 = 4printf()输出 输出结果为4没有换行,也没有多余的空格,就是一个简简单单的4,据推测,a是一个整形变量。
否则取值1。这里a=3,a1不为真,所以整个条件表达式(a1)?a:1的值取1。所以a+=(a1)?a:1就变成了a+=1,等价于a=a+1。原来a的值为3,所以a+1=4。然后把4再赋值给a。所以a的最后值为4。
很明显,当对条件 a 1 进行判断时,因为a = 3 因此判断结果为false ,将执行 :号后面的表达式---也就是1---也就是a += 1, 因为a =3 因此 a += 1 的最终结果为4 。
c语言为什么a等于3啊,不等于4呢
因为&&等逻辑操作符具有“短路”特性,意思是当&&之前的表达式结果为false时,其后的表达式不执行。具体到本例,因为a等于3,a1为false,因此表达式--a1不执行,判断完毕后a依然等于3。
***设a、b和c的值都为3,那么表达式的结果将为0,因为a(3)不等于b == c的结果(1)。根据您给出的结果(3,3,0,0),我猜测a、b和c的初始值可能分别为0、3和3。在这种情况下,上述解释与您给出的结果一致。
a--的职会等于a的值,也就是3,然后因为a--所以表达于以后的a=区别--a=2,然后a=2 区别是最后新的a都会=(原来的)a-1 但是a--会等于原来a的值。而--a会等于a-1后的值(也就是赋值后的)。
逗号表达式中最后一个子表达式的值作为整个表达式的值被返回。所以第一个表达式可以等价为下面的表达式序列:b=3;b+5;a=(b++);执行到第三个子表达式的时候,整个表达式的执行过程是:a=b;b=b+1;所以很显然,a=3。
关于c语言a=3和C语言a=3,a++,3*a+2的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。