C语言条件运算符

ch=(ch>='a’&&ch<=‘z')?ch-’a’+'A':ch;
此表达式是什么意思?在什么情况下才赋值给ch

第1个回答  2012-04-20
语法:
条件?条件为真的值:为假的值
表达式1?表达式2:表达3
-----------------------------------------
也就是说表达式1 他的值 是个逻辑值(1或0)
ch=(ch>='a'&&ch<='z')
结果是 :
1)如果 括号里两个条件 同时满足
括号里的值 是 1
ch = 1
那么执行 表达2
2) 如果 括号里两个条件 有一个不满足
括号里的值 是 0 ch = 1
那么执行 表达3追问

那么表达式2:ch-’a’+'A' 这个值是什么

第2个回答  2012-04-20
三目运算符 m = A?B:C
A != 0时 m = B
A = 0 时 m = C

ch=(ch>='a’&&ch<=‘z')?ch-’a’+'A':ch;
这个意思是 : 如果a为小写字母,则转化为大写字母追问

这个意思能详细的解释下嘛,就是那个转化为大写字母。小弟初学,有点不能理解。麻烦了

追答

字母,或者说字符,在内存中是以整数型式存储的,整数与字符间的对应关系见ASCII表。
这里的意思是 ch 的值减去a对应的整数值,再加上A对应的整数值,就是ch对应的大写字母的整数值(如果ch是小写字母)

具体请查ASCII表计算

http://wenku.baidu.com/view/b6aded36a32d7375a4178089.html

本回答被提问者采纳
第3个回答  2020-04-30