C语言中a+=(a<1)?a:1是什么意思?

如题所述

(a < 1)?a:1的意思是:判断 a和1的大小,当a<1时 a取值为a,也就是a=a,当a>=1时a=1.
a+=*表示的意思是a=a+*;

a+=(a<1)?a:1
所以上表达式表示的意思是
当a<1时 a=a+a;
当a>=1时a=a+1;
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-17
这是三目运算。意思是判断a<1是否成立,如果a<1则为真,这是表达式取值a,如果a>=1,则为假,取值1,即:
a<1则a+=a 也就是a=a+a .a+a再赋值给a的意思,
a>=1则a+=1也是a=a+1,同上
第2个回答  2011-09-17
a+=(a<1)?a:1中?时条件判断,前面的a+=xxx是赋值运算。
条件判断操作符优先于赋值运算操作符。
此句等效于a=a+(a<1?a:1),而a<1?a:1得意思是:若a<1为真,则表达式值为a,否则表达式值为1.
第3个回答  2011-09-17
是这样的, 首先看后面的那个“?:“三项表达式, 当问号前面的式子(a<1)成立的时候,返回结果冒号前面的值a,否则返回后面的值1. 然后再算前面的 a+="刚才的返回值"
第4个回答  2011-09-17
加入a《1,做a+=a,否则,a+=1

C语言中a+=(a<1)?a:1是什么意思?
(a < 1)?a:1的意思是:判断 a和1的大小,当a<1时 a取值为a,也就是a=a,当a>=1时a=1.a+=*表示的意思是a=a+*;a+=(a<1)?a:1 所以上表达式表示的意思是 当a<1时 a=a+a;当a>=1时a=a+1;

C语言a=3;a+=(a<1)?a:1;printf("%d",a);结果是?
首先,a= 3故(a<1)不成立,所以,a+=1所以a= a+1 = 3+1 = 4printf()输出 输出结果为4没有换行,也没有多余的空格,就是一个简简单单的4,据推测,a是一个整形变量。

在C语言中?a:1是什么意思?
表达的意思是: 表达式1 是真的吗?真的话,选表达式2:假的的话,选表达式3。被选择的表达式,作为整个 运算 的结果。题目中 ?a:1;如果“?”前面真没东西,那么就是“空”,而“空”在C语言中,为非零,即是“真”,就会选择‘a’作为结果 ...

c语言 表达式啊a<1&&--a>1运行过程!
“C语言中只有四个运算符(&&、||、?=和,)存在求值顺序。运算符&&和运算符||首先对左侧操作数求值,只在需要时才对右侧操作数求值”。你的例子中,--a并没有执行,因为a<1已经能够决定整个条件表达式的值。

C语言中a+=a是什么意思
根据网上的搜索结果,C语言中a+=a是一种赋值运算符,意思是将a的值加上自身,然后再赋给a。12 例如:如果a的初始值是2,那么执行a+=a后,a的值变为4。如果a的初始值是-1,那么执行a+=a后,a的值变为-2。如果a的初始值是0.5,那么执行a+=a后,a的值变为1.0。这种运算符可以简化代码...

C语言中a+=a是什么意思
这是C语言中的“右移运算符”。一般情况下,他是按位操作。特点:1.双目运算符,就像+、-、*、\/一样,格式为(数1)>>(数2)2.数1是被操作数,如被减数、被除数等;数2是右移位数。3.优先级低,结合性:从左向右运算 如:8>>1=?表示将被移数向右移动1位 如何操作?1.化十进制数为...

c语言中a<<=1与a<<1的区别?
c语言 a<<=1与a<<1的区别:1、运算符号的含义不同 <<=是左移赋值运算符,a<<=b是把a的二进制数左移b位,然后把结果赋值给a;<<是左移运算符,a<<b是把a的二进制数左移b位。2、运算结果不同 a<<=1表示把左边运算数a的二进制数进行左移1位运算,然后把计算的结果赋值给a,会改变a...

C语言中a++;和a--;连用时代表什么意思?
++(自加),自加又分为前置自加(++a)和后置自加(a++),前置自加先增加再使用,后置自加,先使用再增加,好好理解这两句话哦。--(自减):同理也分前置自减(--a)和后置自减(a--),使用方法同上面的一样;

c语言中a[1][a[1][2]]是什么意思
a==1?1:2在c语言中的意思是说如果a等于1是成立的话,那么a的结果就是为1,但是如果a等于1的等式不成立的时候,那么a的结果就为2。这样的式子在C语言中,属于关系运算符中的三目运算符,三目运算符就是当等式成立结果为?后面的值,当不成立时,选择:后的值。等式?条件1:条件2。

c语言中为什么'a=0'不是字符常量?为什么a+1=a是错的?a+=a+1表示...
不过实际上,'a=0'是一个多字符字符常量(multi-character character constant),它属于unspecified behavior,因此通常不作讨论,认为它是错的就可以了。赋值号的左边必须是一个左值,a+1是一个右值,因而不能放在赋值号的左边。a+=a+1相当于a=a+(a+1),计算2a+1的值,并赋值给a。

相似回答