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

如题所述

是一个语句,判断一个表达式的真假来执行两条代码

比如

int a=9,b=8;

a>b?a=8:b=9; //就是这句

相当于if语句吧,问号前面的表达式为真的时候执行a=8,否则b=9;

扩展资料:

C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。

常量与变量

常量其值不可改变,符号常量名通常用大写。

变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。

数组

如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,中括号内的索引值是从0算起的。

指针

如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。

指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。

指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-04
? : 连起来的意思 我举个例子吧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++部落因为你而精彩~
第2个回答  推荐于2017-11-25
? : 是一个三目运算符,也是唯一的一个三目运算符。?前面表逻辑条件,:前面也就是?后面表示条件成立时的值,:后面表条件不成立时的值。例如,当a>b时,x=1否则x=0,可以写成x=a>b?1:0。本回答被网友采纳
第3个回答  2013-08-04
三元符 就是简单的 if判断
第4个回答  2020-01-13
相似回答