C语言中“?”和“:”是什么意思?

如题所述

“?”在C语言中表示疑问。

“:”在C语言中表示判断的结果选择。

【例子】

(a>b)?

解释:判断表达式是否能够通过,如果能通过,那么说明才能进行之后的操作,如果不能通过,就选择后一种结果。

(a>b)?y:n

解释:如果A大于B,那么选择Y的结果,如果A小于B,那么选择N的结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-10
在C语言中,?与:组合使用,形成的表达式叫问号表达式。
语法是:
表达式一?表达式二:表达式三;
如果表达式一的逻辑值为真,则把表达式二的值作为问号表达式的值,否则,把表达式三的值作为问号表达式的值。
如:a=3>3?10:20;
运算结果是a被赋值20。
第2个回答  2021-04-07
起来的意思
我举个例子吧
int
a
=3;
int
b=
2;
int
c;
if(a>b)?(c=a):(c=b);//意思是如果a>b就执行c=a,否则就执行c=b
类似于下面的语句
if(a>b)
{
c=a;
}
else
{
c
=
b;
}

条件运算符是
?
:

  表达式为:表达式1?表达式2:表达式3
  表达式2是条件成立(逻辑值为1)时整个表达式的取值
  表达式3是条件不成立(逻辑值为0)时整个表达式的值
  例如:
m<n?x:a+3
  a++>=10
&&
b-->20
?
a
:
b
  x=3+a>5
?
100
:
200
  
优先级

  条件运算符优先级高于赋值、逗号运算符,低于其他运算符
  例如:
  ⑴
m<n
?
x
:
a+3
  等价于:(m<n)
?(x)
:(a+3)
  ⑵
a++>=10
&&
b-->20
?
a
:
b
  等价于:(a++>=10
&&
b-->20)
?
a
:
b
  ⑶
x=3+a>5
?
100
:
200
  等价于:x=
((
3+a>5
)
?
100
:
200
)
  
结合性

  条件运算符具有右结合性
  当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。
  例如:
  w<x
?
x+w
:
x<y
?
x
:
y
  与
w<x
?
x+w
:
(
x<y
?
x
:
y)
等价
  与
(w<x
?
x+w
:
x<y)
?
x
:
y
不等价
----欢迎加入------c++部落------------Hello
Word!--------
无论你是初学者还是家,只要你热爱编程、交流、分享,c++部落因为你而精彩~本回答被网友采纳
第3个回答  2019-04-04
?:是条件运算符,是c语言中唯一一个三目运算,形式为
表达式1?表达式2:表达式3、
判断表达式1的真假,若表达式1为真,则执行表达式2;若表达式1为假,则执行表达式3;

例如max=a>b?a:b的意思是若a>b成立,则将a的值赋予max,反之,将b的值赋予max
第4个回答  2019-01-21
?
:
是一个三目运算符,也是唯一的一个三目运算符。?前面表逻辑条件,:前面也就是?后面表示条件成立时的值,:后面表条件不成立时的值。例如,当a>b时,x=1否则x=0,可以写成x=a>b?1:0。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网