有哪位大佬可以解惑吗
#include <stdio.h>int main()
{
char ch = "FishC";
int i;
printf("请输入你想访问的字符序号(0~5):");
scanf("%d", &i);
if (!(i >= 0 && i <= 5 && printf("%c\n", ch)))
{
printf("非法访问!\n");
}
return 0;
}
小甲鱼写的这段话我有点看不懂if (!(i >= 0 && i <= 5 && printf("%c\n", ch))),为什么printf("%c\n", ch)可以加在逻辑式后面,是因为它不为0所以逻辑值为1吗。既然它是if()里的表达式,为什么还可以打印出来。后面输出
printf("非法访问!\n");我知道是因为短路逻辑的原因。我不明白为什么if()表达式里的判断语句可以打印出来。 可能这就是规定吧,说明printf当作if 逻辑判断一部分时printf语句会正常执行 https://static01.imgkr.com/temp/0066e75ebfed42969b3452137de1202e.jpg
就像这样,我猜printf执行后返回 Ture https://static01.imgkr.com/temp/0066e75ebfed42969b3452137de1202e.jpg 谢谢大哥,不纠结这些了 mhj1995 发表于 2021-8-5 21:54
谢谢大哥,不纠结这些了
哈哈哈,那句话说得好啊"认真你就输了",不用太纠结{:10_281:}
页:
[1]