关于C运算符的问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 03:05:31
main()
{
char ch;
printf("please input a letter:");
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
printf("%c",ch);
getch();
}
这上面的&&不是一个逻辑运算符吗,运算结果不是0就是1。但我就是搞不懂用在这为什么算出的值就不是了,有人能帮我解答吗?

这是条件判断表达式:

形式为:
(表达式)?(a):(b)

当表达式为1(真)时,该表达式的值为1
当表达式为0(假)时,该表达式的值为0

ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
这句的意思是,如果ch是大写字母,ch=ch+32,如果ch不是大写字母,ch=ch.

&&是逻辑与运算符,此程序是如果输入的字符是大写的英文字母的话,就将大写字母转为小写字母。如果是其他字符就原样输出。

&&是一个逻辑运算符 ,使用方法是A&&B:意思是当A和B都非0的时候表达式(A&&B)非0(真)。其他时候A B任意一个为0(假),A&&B就为0(假)。在语句中ch=(ch>='A'&&ch<='Z')?(ch+32):ch; ch>='A'&&ch<='Z'判断ch是否为大写字母.当ch为大写字母的时候ch=1?(ch+32):ch; 即ch=ch+32 转为小写字母。如果ch不是大写字母的话ch=ch;不改变。最终printf("%c",ch); 输出ch。

这段程序是获取一个输入,判断是否为大写字母,如果是则转为小写字母输出,如果不是则原样输出

此程序先是要你输入一个字母,若输入为小写字母,则原样输出,若为大写字母,则变为相应的小写字母后输出.
该语句:
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
是一个条件运算符语句.意思是如果ch大于A和ch小于Z,即为大写字母时,(ch>='A'&&ch<='Z')的值为1,真,取ch+32,反之其值为0.则取ch.

是的 如果它是正确的(ch>='A'&&ch<='Z')的值即为1 。 然后就会算ch+32的值,再把ch+32的值复值给ch,否则不变。

你指的值是哪个值 ?