奇幻世界1 发表于 2019-2-10 16:12:06

一个问题

请问1%2?是什么意思啊
就是这样的
cout<<(1%2?"**":"++++")
他没有==,也没有!=,那怎么看呢
谢谢

TyCk 发表于 2019-2-10 17:14:22

a?b:c 是三元操作符,a为true时,执行b,a为false时,执行c。

xieduangduang 发表于 2019-2-10 18:01:16

1%21对2取余 就是1除以2得到余数%是取余符号

迷雾道长 发表于 2019-2-11 13:25:24

1%2是求余,也就是1除以2得到的余数,在C语言中0和非0可以当成真假来用,这里是真的意思

行客 发表于 2019-2-11 15:27:18

c++的三元操作符形式:

//条件表达式 ? 表达式1 : 表达式2;

语义:如果“条件表达式”为true,则整个表达式的值就是表达式1,忽略表达式2;如果“条件表达式”为false,则整个表达式的值就是表达式2,等价于if/else语句。

if (条件表达式)
   result = 表达式1;
else
   result = 表达式2;



%是求余运算符,也叫模除运算符,用于求余数。

%要求两个操作数均为整数(或可以隐式转换成整数的类型)。

标准规定:

如果%左边的操作数为负数时,则模除的结果为负数或者0,

如果%左边的操作数为正数时,则模除的结构为正数或者0。



1%2是求余,也就是1除以2得到的余数,这里的余数为1。在C语言中非0和0可以当成真假来用。这里是真的意思。

所以,cout<<(1%2?"**":"++++");
cout输出**


奇幻世界1 发表于 2019-2-15 15:12:45

行客 发表于 2019-2-11 15:27
c++的三元操作符形式:

//条件表达式 ? 表达式1 : 表达式2;


感谢
页: [1]
查看完整版本: 一个问题