1.C语言三目运算符怎么用
C语言三目运算符用法:对于条件表达式b ? x : y,先计算条件b,然后进行判断。
如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。
条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行。
<表达式1> ? <表达式2> : <表达式3>; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。
也可以理解为是不是条件成立,条件成立为结果1否则为结果2。扩展资料:三目运算符,又称条件运算符,指的是计算机语言(c,c++,java等)的重要组成部分。
它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。
以下是关于条件运算符的几点说明:(1) 通常情况下,表达式1是关系表达式或逻辑表达式,用于描述条件表达式中的条件,表达式2和表达式3可以是常量,变量或表达式。例如:(x==y)?'Y':'N'(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)ch=(ch>='A'&&ch<='Z')?(ch+32):ch以上均为合法的条件表达式。
(2) 条件表达式的执行顺序为:先求解表达式1,若值为非0,表示条件为真,则求解表达式2,此时表达式2的值就作为整个条件表达式的值;若表达式1的值为0,表示条件为假,则求解表达式3,表达式3的值就是整个条件表达式的值。例如:(a>=0)?a:-a 执行结果是a的绝对值。
(3) 在程序中,通过把条件表达式的值直接赋予某个变量。例如:min=(a
(4) 条件表达式的优先级别仅高于赋值运算符,而低于前面遇到过的所有运算符。因此,min=(a
例如:x>0?1:x<0?-1:0上述条件表达式中,表达式3部分又是一个条件表达式.根据条件表达式的结合性,上述条件表达式等价于:x>0?1:(x<0?-1:0)其作用是判断x的符号情况.当x为正数时,该条件表达式的值为1;当x为负数时,该条件表达式的值为-1;当x为0时,该条件表达式的值为0。(7) 条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代替if语句。
例如:if(a%2==0)printf("even/n");elseprintf("odd/n");该语句的作用是:若 a 为偶数,输出 even;若 a 为奇数,输出odd。(8) 表达式1,表达式2,表达式3的类型可以不同.此时条件表达式的值的类型为它们中较高的类型。
参考资料:三目运算符-百度百科C语言运算符-百度百科。
2.关于三目运算符
不一样!下面的那个先算()里的!\\\\\\\\\\\\\\ Turbo C运算符的优先次序 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━ 表达式 ┃优先级 ————————————————————————————╂———— ()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员) ┃ 最高 ————————————————————————————┃ ↑ !(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址) ┃ │ ————————————————————————————┃ │ *(指针所指内容) type(函数说明) sizeof(长度计算) ┃ │ ————————————————————————————┃ │ *(乘) /(除) %(取余) ┃ │ ————————————————————————————┃ │ +(加) -(减) ┃ │ ————————————————————————————┃ │ <<(位左移) >>(位右移) ┃ │ ————————————————————————————┃ │ <(小于) <=(小于等于) >(大于) >=(大于等于) ┃ │ ————————————————————————————┃ │ ==(等于) !=(不等于) ┃ │ ————————————————————————————┃ │ &(位与) ┃ │ ————————————————————————————┃ │ ^(位异或) ┃ │ ————————————————————————————┃ │ |(位或) ┃ │ ————————————————————————————┃ │ &&(逻辑与) ┃ │ ————————————————————————————┃ │ ||(逻辑或) ┃ │ ————————————————————————————┃ │ ?:(?表达式) ┃ │ ————————————————————————————┃ │ = += -=(联合操作) ┃ │ ————————————————————————————┃ │ ,(逗号运算符) ┃ 最低 c语言运算符优先级 Turbo C的运算符非常丰富, 主要分为三大类: 算术运算符, 关系运算符与 逻辑运算符, 按位运算符。
除此之外, 还有一些用于完成特殊任务的运算符。下 面分别进行介绍。
5.1 算术运算符 Turbo C的算术运算符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符 作用 ———————————————————————————— + 加, 一目取正 - 减, 一目取负 * 乘 / 除 % 取模 -- 减1 ++ 加1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 一、一目和二目操作 一目操作是指对一个操作数进行操作。例如: -a是对a进行一目负操作。
二目操作(或多目操作)是指两个操作数(或多个操作数)进行操作。 在Turbo C中加、减、乘、除、取模的运算与其它高级语言相同。
需要注意 的是除法和取模运算。 例如: 15/2 是15除以2商的整数部分7 15%2 是15除以2的余数部分1 对于取模运算符"%", 不能用于浮点数。
另外, 由于Turbo C中字符型数会自动地转换成整型数, 因此字符型数也可 以参加二目运算。 例如: main() { char m, n; /*定义字符型变量*/ m='c'; /*给m赋小写字母'c'*/ n=m+'A'-'a'; /*将c中的小写字母变成大写字母'B'后赋给n*/ 。
} 上例中m='c'即m=98, 由于字母A和a的ASCII码值分别为65和97。这样可以将 小写字母变成大写字母, 反之, 如果要将大写字母变成小写字母, 则用c+ 'a' -'A'进行计算。
二、增量运算 在Turbo C中有两个很有用的运算符, 在其它高级语言中通常没有。这两个 运算符就是增1和减1运算符"++"和"--", 运算符"++"是操作数加1, 而"--" 则是 操作数减1。
例如: x=x+1 可写成x++, 或++x x=x-1 可写成x--, 或--x x++(x--)与++x(--x)在上例中没有什么区别, 但x=m++和x=++m却有很大差别。 x=m++ 表示将m的值赋给x后, m加1。
x=++m 表示m先加1后, 再将新值赋给x。 三、赋值语句中的数据类型转换 类型转换是指不同类型的变量混用时的类型改变。
在赋值语句中, 类型转换规则是: 等号右边的值转换为等号左边变量所属的类型。 例如: main() { int i, j; /*定义整型变量*/ float f, g=2.58; /*定义浮点型变量*/ f=i*j; /*i与j的乘积是整型数, 被转换成为浮点数赋给f*/ i=g; /*g中的浮点型数转换成为整型数赋给i*/ 。
} 由于Turbo C按上述数据类型转换规则, 因此在作除法运算时应特别注意。 例如: main() { float f; int i=15; f=i/2; } 上面程序经运行后, f=7并不等于准确值7.5。
正确的程序应该是: main() { float f; int i=15; f=i/2.0; } 也可直接将i定义为浮点数。 5.2 关系运算符和逻辑运算符 一、逻辑运算符 逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。
Turbo C的逻辑运算符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符 作用 ————————————————————————————— && 逻辑与 || 逻辑或 ! 逻辑非 ━━━━━━━━━━━━━━━━━━━━━━━━。
3.C语言中三目运算符是什么
三目运算符为a?b:c即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:
表达式1? 表达式2: 表达式3
其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。
例如条件语句:
if(a>b) max=a;
else max=b;
可用条件表达式写为 max=(a>b)?a:b; 执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。
使用条件表达式时,还应注意以下几点:
1. 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b
2. 条件运算符?和:是一对运算符,不能分开单独使用。
3. 条件运算符的结合方向是自右至左。
例如:
a>b?a:c>d?c:d应理解为
a>b?a:(c>d?c:d) 这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条
件表达式。
void main(){
int a,b,max;
printf("\n input two numbers: ");
scanf("%d%d",&a,&b);
printf("max=%d",a>b?a:b);对于你的问题,可以理解为if() 语句一;else 语句二;a? b : c若无疑问 请采纳
}
用条件表达式对上例重新编程,输出两个数中的大数。
4.c++三目运算符怎么用
三目运算符是?:结构的运算
所谓三目就是需要三个变量对能进行运算的操作
举个简单的例子:
a=2>1?3:4
可分成几个部分,用括号分开:
(a=)(2>1)?(3):(4)
最左边是赋值操作
第二个部分是一个判断
第三和第四部分是两个常数
首先判断第三部分是否成立,成立即选择第三部分,否则选择第四部分
像上面那个2>1成立,所以就执行了a=3
这种运算还可以嵌套
比如判断year是不是闰年,是则返回1,不是返回0
year=(year%100==0)?(year%400==0?1:0):(year%4==0?1:0)