资源描述:
《c语言中条件运算符的语法为》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、条件运算符的语法为:(条件表达式)?(条件为真时的表达式):(条件为假时的表达式)例如:x=a
2、符,所以输出语句中要将条件运算符构成的表达式用括号括起来。条件运算符表达式的值与测试值没有直接的关系。例如:cout<<(number==l?"file":"files")<y?"greaterthan":x==y?"equalto":"lessthan"它等价于:(x>y)?"greaterthan":((x==y)?"equalto":"lessthan")当x>y时,值为"great
3、erthan",x==y时,值为"equalto",否则,值为"lessthan"。条件运算符的嵌套可读性不够好。在一个条件运算符的表达式中,如果后面两个表达式的值类型相同,均为左值,则该条件运算符表达式的值为左值表达式。例如:intx=5;longa,b;(x?a:b)=1;//ok:因为a和b都是左值(x?x:a)=2;//error:x和a不同类型。编译器将其解释为(1ong)x和a(x==271:a)=3;//error:1非左值"(x?a:b)=1"表示当x为0时,b=1,否则a=1。这里的括号是必须的,否则将被看作x?a:(b=1)。"(x?x:a)=2”中,
4、尽管x是左值,a也是左值,但x与a不同类型,条件运算符要对其进行操作数的隐式转换,使之成为相同的类型。任何被转换的变量都不是左值。->在C中,条件运算符是不能作左值的,所以"(x?a:b)=1;"将通不过编译。getchar 函数名:getchar 功能:从stdio流中读字符 用法:intgetchar(void); 注解: getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字
5、符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键. getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCII码,出错返回-1.输入的字符不会回显在屏幕上.getch函数常用于
6、程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行. 程序例: #include intmain(void) { intc; inta; a=getch(); printf("%c",a); /*Notethatgetcharreadsfromstdinand islinebuffered;thismeansitwill notreturnuntilyoupressENTER.*/ while((c=getchar())!='') { printf("%c",c
7、); } return0; }注:可以利用getchar()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,用法:在主函数结尾,return0;之前加上getchar();即可下面是C语言中所使用的运算符的优先级和结合性:优先级运算符结合性(最高)()[]->.自左向右!~++--+-*&sizeof自右向左*/%自左向右+-自左向右<<>>自左向右<<=>>=自左向右==!=自左向右&自左向右^自左向右
8、自左向右&&自左向右
9、
10、自左向右?:自右向左=+=-=*=/=%=&=^=
11、=<<=>>=自右向左(最低)