C语言条件运算符
如果希望获得两个数中最大的一个,可以使用 if 语句,例如:
- if(a>b){
- max = a;
- }else{
- max = b;
- }
不过,C语言提供了一种更加简单的方法,叫做条件运算符,语法格式为:
表达式1 ? 表达式2 : 表达式3
条件运算符是C语言中唯一的一个三目运算符,其求值规则为:如果表达式1的值为真,则以表达式2 的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。条件表达式通常用于赋值语句之中。
上面的 if else 语句等价于:
- max = (a>b) ? a : b;
该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。
读者可以认为条件运算符是一种简写的 if else,完全可以用 if else 来替换。
使用条件表达式时,还应注意以下几点:
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 );
这也就是条件表达式嵌套的情形,即其中的表达式又是一个条件表达式。
用条件表达式重新编程,输出两个数中的最大值:
- #include <stdio.h>
- int main(){
- int a, b;
- printf("Input two numbers:");
- scanf("%d %d", &a, &b);
- printf("max=%d\n", a>b?a:b);
- return 0;
- }
运行结果:
Input two numbers:23 45
max=45
C语言条件运算符的更多相关文章
- C语言关系运算符
在上节<C语言if else语句>中看到,if 的判断条件中使用了<=.>.!=等符号,它们专门用在判断条件中,让程序决定下一步的操作,称为关系运算符(Relational O ...
- 2_C语言中的数据类型 (九)逻辑运算符与if语句、switch、条件运算符?、goto语句与标号
1 条件分支语句 1.1 关系运算符 在C语言中0代表false,非0代表真 1.1.1 < 小于 1.1.2 <= 小于 ...
- C语言------三目运算符(条件运算符)
今天在看C语言的时候看到了下面的代码(废话少说,直接上代码): #include <stdio.h> int main() {int max(); extern int A,B,C; // ...
- C语言的三目运算符(x=a?b:c):条件运算符
三目运算符使用是为了有条件判断的选择赋值 x = a ? b : c 先计算 a表达式 是否为真.若为真,x 的值便是 b表达式的值,否则 x的值便是 c表达式的值. 条件运算符是右结合的. 如:a ...
- C#语言基础
第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了 ...
- C语言的一些小知识
注:本文讨论的"C语言"为GNU C,而非ANSI C 标准库 语法 switch语句中的case关键词可以放在任何地方 switch (a) { case 1:; if (b== ...
- Swift语言快速入门
Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著 ISBN 978-7-121-24328-8 201 ...
- C语言
HTML的学习早已落下帷幕,我们已经进入了C语言的学习,这段时间时间主要学了运算符.表达式.循环语句以及数组和字符串,感觉到了一种朦朦胧胧懂得尴尬. 运算符主要包括:算术运算符.赋值运算符.关系运算符 ...
- C语言经典例题100
C语言经典例题100 来源 http://www.fishc.com 适合初学者 ----------------------------------------------------------- ...
随机推荐
- ssh(安全外壳协议)
SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专 ...
- Intellij IDEA 使用技巧一
前言 个人之前一直用eclipse做c++.java开发,换到新公司,大家都用IDEA开发工具,所以最近也在学习,总结下个人心得. 1.文本编辑 删除 ctr + y 复制 ...
- ASP.NET MVC之Html.RenderAction(无操作方法 传参数)
WEB窗体模式开发惯了,切入MVC模式,好多东西都不懂,每一步都要查资料. 初步得来的一些知识点体会是: _Layout.cshtml就相当于母版页 然后partical视图(部分视图)就是用户控件. ...
- C++的引用与const指针的关系以及各种传递方式
首先我们知道 const int *p 与 int const *p 是一样的,即 *p 是常量:而 int * const p 跟上面是不一样的,即 p 是常量:我们知道引用只是一个别名,与变量共享 ...
- MS SQL server中的isnull函数
一.ISNULL语法格式 ISNULL ( check_expression , replacement_value ) 二.参数简介 check_expression:将被检查是否为 NULL的表达 ...
- iframe自适应高度处理
一中方法: 在子页面加载完毕的时候执行 parent.document.getElementById("iframe").height=0; parent.document.get ...
- Hadoop-2.2.0中文文档—— Shell命令
FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式. 全部的的FS shell命令使用URI路径作为參数.URI格式是scheme: ...
- linux下开发C语言需要安装的manpages手册
linux下开发C代码需要安装的manpages: $ sudo apt-get install manpages$ sudo apt-get install manpages-dev$ sudo a ...
- Spring Boot与Spring Security整合后post数据不了,403拒绝访问
http://blog.csdn.net/sinat_28454173/article/details/52251004 *************************************** ...
- 一个很好用的系统管理的命令lsof(转载)
最近发现LOSF 命令在系统管理方面特别有用,把我搜集的资料总结如下 1.当在lsof后边没有跟任何参数时,该命令将会列出当前系统中被所有进程打开的所有文件#lsof|nl #nl命令打印出行号 2. ...