C语言中(a>b)?a:b和(a<b)?b:a有什么区别

如题所述

C语言中,“(a>b)?a:b”和“(a<b)?b:a”的区别是当a与b相等时,前者的值是b,后者的值的是a。

条件运算符的表达式为“表达式1?表达式2:表达式3”,先求解表达式1,若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。例如:

1、max=(a>b)?a:b

就是将a和b二者中较大的一个赋给max。

2、min=(a<b)?a:b

就是将a和b二者中较小的一个赋给min。

扩展资料:

条件运算符使用上的结合性:

条件运算符具有右结合性,当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。例如:

w<x ? x+w : x<y ? x : y

与 w<x ? x+w : ( x<y ? x : y) 等价

与 (w<x ? x+w : x<y) ? x : y 不等价

参考资料来源:百度百科-条件运算符

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-04-25

一、表达意思不同

1、(a>b)?a:b:如果a大于b,则取a,否则取b。

2、(a<b)?b:a:如果a小于b,则取b,否则取a。

二、逻辑顺序不同

1、(a>b)?a:b:内存逻辑中先执行大于的判断,之后执行下一步。

2、(a<b)?b:a:内存逻辑中先执行小于的判断,之后执行下一步。


三、执行顺序不同

1、(a>b)?a:b:在a跟b中取最大值。

2、(a<b)?b:a:在a跟b中取最小值。

参考资料来源:百度百科-条件表达式

本回答被网友采纳
第2个回答  2018-11-14

1、本质区别

双引号里面的是字符串, 而单引号里面的代表字符。

2、输出区别

str = “a”输出的就是a这个字母;

str = ‘a’输出的测试65

3、底层区别

用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。

扩展资料:

C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

不同的变量类型可以用结构体(struct)组合在一起。

只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

部份的变量类型可以转换,例如整型和字符型变量。

通过指针(pointer),C语言可以容易的对存储器进行低级控制。

预编译处理(preprocessor)让C语言的编译更具有弹性。

第3个回答  2018-12-03

1、本质区别

双引号里面的是字符串, 而单引号里面的代表字符。

2、输出区别

str = “a”输出的就是a这个字母;

str = ‘a’输出的测试65

3、底层区别

用单引号引起的一个字符实际上代表一个整数,整数值对应于该字符在编译器采用的字符集中的序列值。

扩展资料:

C语言中的转义字符

在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么。这类字符称为可显示字符,如a、b、c、$、+和空格符等都是可显示字符。

另一类字符却没有这种特性。它们或者在键盘上找不到对应的一个键(当然可以用特殊方式输入),或者当按键以后不能显示键面上的字符。其实,这类字符是为控制作用而设计的,故称为控制字符。

在C语言中,构成字符常量的控制字符必须用转义字符表示。转义字符是一种以“\”开头的字符。例如退格符用'\b'表示,换行符用'\n'表示。

转义字符中的'\'表示它后面的字符已失去它原来的含义,转变成另外的特定含义。反斜杠与其后面的字符一起构成一个特定的字符。

转义字符是C语言中表示字符的一种特殊形式。转义字符以反斜'\'开头,后面跟一个字符或一个八进制或十六进制数表示。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符。

通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号('),用于表示字符串常量的双撇号(")和反斜杠(\)等。

参考资料来源:百度百科-C语言

第4个回答  2012-11-29
a[]比a少一维,我具体给你解释下。
几个元素可以组成数组,而几个一维数组可以组成二维数组,如此一直增加维数。
比如说a[0]=2,a[1]=1,a[2]=3,组成一个一维数组,这就是a.但是,你要注意,a不是直接把这些东西都存着的,a只存首地址。
假设定义了一个二维数组a[3][3].这时候a[0],a[1],a[2]就不再是元素了,而代表的是一个有三个元素的一位数组,而此时的a就是一个二维数组。如果感觉这个有点困难没关系,等学习了指针什么的久很好理解这个了。
再说说你给的程序,你是不是在疑问为什么gets()直接给str1 就可以了?还有那个输出函数,为啥只用给str1就可以?
这得给存储方式有关,字符串就是字符的二维数组,gets()需要输入字符串的首地址,这个还算好理解,因为你应该学过了scanf()了,二者差不多,关键是为什么输出函数直接就写了str1呢?printf()之前你学的一般都是(printf("%d",a[1]));这种类型的。这里为啥要填一个地址参数呢?这是因为你前面是%s s代表字符串,字符串本身就是二维的,因此,你当然不能只给他一个单独的元素了,那么,你给了首地址他如何知道你这个字符串是啥呢?因为字符串都是顺序存储的,更重要的是字符串在结尾处有个标志“/0”,因此,你只要给力他首地址,他就知道从哪里开始,从哪里结束了。
纯手打,望采纳。

C语言中(a>b)?a:b和(a<b)?b:a有什么区别
在C语言中,"(a>b)?a:b"与"(ab)?a:b"的意思是,如果a大于b,则返回a,否则返回b,因此它实际上是在比较后选择较大的值。相反,"(ab)?a:b"是寻找a和b中的最大值,而"(a<b)?b:a"则是在寻找最小值。这在编程中可能会对程序的决策过程产生影响,特别是在需要根据两个数的大小关系...

C语言中(a>b)?a:b和(a<b)?b:a有什么区别
一、表达意思不同 1、(a>b)?a:b:如果a大于b,则取a,否则取b。2、(a<b)?b:a:如果a小于b,则取b,否则取a。二、逻辑顺序不同 1、(a>b)?a:b:内存逻辑中先执行大于的判断,之后执行下一步。2、(a<b)?b:a:内存逻辑中先执行小于的判断,之后执行下一步。三、执行顺序不同 1、...

C语言中(a>b)?a:b和(a<b)?b:a有什么区别
C语言中,“(a>b)?a:b”和“(a<b)?b:a”的区别是当a与b相等时,前者的值是b,后者的值的是a。条件运算符的表达式为“表达式1?表达式2:表达式3”,先求解表达式1,若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。例...

c语言中(a>b)?a:b是什么意思阿?谢谢各位大神
"c语言中(a>b)?a:b"是一个“条件表达式”。它是这样执行的:如果(a>b)条件为真,则条件表达式为a,否则取值为b.

C语言(a>b)?a:b是什么意思?
C语言(a>b)?a:b的意思是如果a>b的结果为真,那么表达式的结果会是a,表达式的结果为0,那么表达式的结果就会是b。这是C语言中唯一一个三目运算符,它可以简化很多表达式。有利于代码的书写。求值规则为:如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式3的值作为整个条件...

(a>b)?a:b什么意思?怎么解释?在C语言中
在C语言中,表达式"(a > b) ? a : b"是一个条件运算符,也称为三元运算符。它的基本思想是根据条件的真假来决定取哪个值。当条件"a大于b"为真时,该表达式的结果就是变量a的值;如果条件为假,即a不大于b,那么就取变量b的值。这个过程可以直观地理解为:从右向左进行计算,首先判断"(b ...

(a>b)?a:b什么意思?怎么解释?在c语言中
答案: 这是条件运算符在C语言中的用法。表达式 ` ? a : b` 的含义是:如果 `a` 大于 `b`,则整个表达式的值为 `a`,否则为 `b`。解释:1. 条件运算符简介:条件运算符 `? :` 是C语言中唯一一个三目运算符。它用于进行简单的条件判断,并返回两个值中的一个,取决于条件的真假。2....

C语言编程中,a>b与b<a有什么区别?
没有区别 但是你肯定输入时不对,看你的这一句:scanf("%d,%d,%d",&a,&b,&c);这一句的意思是你输入的三个整数之间要以逗号分开,即必须输入“1,2,3”(这是一个例子)才能有使scanf函数真确读入这三个数,你的输入是以空格分开打吧,把逗号去掉吧,问题不是出在<>这两个符号上的 ...

(a)>(b) ? (a):(b)
如果a大于b就取返回值a,a小于或等于b就取b C语言中有一个三目运算符,它就是"?:"条件运算符,它要求有三个运算对象。它可以把三个表达式连接构成一个条件表达式。条件表达式的一般形式如下:逻辑表达式? 表达式1 : 表达式2 条件运算符的作用简单来说就是根据逻辑表达式的值选择使用表达式的值。当...

c 语言:是什么意思?black=(a>b)?a:b;
问号(?)是C语言的三元运算符,相当于一个if...then...else...语句。根据运算符的结合性,black=(a>b)?a:b 相当于 black=((a>b)?a:b)也就是a与b中较大的那个赋给变量black PS.不知道这里black以及a和b都是什么类型,如果是指针的话,则是地址较大的那个指针赋给变量black,也就是将...

相似回答