如果x和y是两个值分别为1和2的整数。语句 y= - -x--的含义是什么;
If x and y are two integers with value 1& 2 respectively. What is the meaning of the statement y= - -x--;
我写了下面的程序,输出0 1,但我不明白
main()
{
int i = 1, m = 2;
m= - - i--;
printf("%d %d", i, m);
}
让我们考虑:
m = - - i--;
这里,- -
应用一元减号两次。这实际上是一个无操作。因此以上内容可以简化为
m = i--;
这相当于:
m = i;
i = i - 1;
因此正确的输出是0 1
。
——和——是不同的:——等于——(-())运算符,当你调用
m= - - i--;
将I减1,然后将新值乘以-1两次,这不会改变结果
自增后运算符(--
)产生i
的值(之后它被否定两次),然后减少它。所以m
为1,i
为0
- -x--
可以写成- (- (x--))
。
x--
从x中减去1,但在减去之前返回x。所以y将取x的值,x现在等于x - 1
相关文章:
- 如何反转整数参数包
- 我在c++中遇到了一个奇怪的错误,其中一个计算2个小整数加法的语句溢出到一个长值中
- 将 OR 放入 if 语句会导致 ISO C++禁止指针和整数之间的比较(f 允许)
- 为什么所有可能的整数都"true"在 C++ 的 if 语句内的 long int 范围内,而 0 不是?
- 从用户输入中提取整数的枚举开关语句
- 使用 IF 语句比较两个整数
- C++ to_string函数根据额外打印语句的先见之明,为浮点数和整数转换提供不同的结果
- 条件语句,用于验证事务模块(.cpp)标头中#define(d)整数提供的范围
- 如何查找用户使用 do/while、While 语句或 For 语句输入的几个整数的总和
- 根据队列内容(if 语句)确定数字是实数还是整数
- cython return 语句给出了一个内置方法而不是整数
- 如果语句应该更改整数,但在 printf * 中使用时不会更改
- 如果在C++中输入的值不是整数,如何重复语句
- 如果x和y是两个值分别为1和2的整数。语句 y= - -x--的含义是什么;
- C/C++ 中的 'if' 语句是否将操作数转换为整数?
- c++ SFML整数在if / else语句中不工作
- 在条件语句中指定一个整数
- 如何在C++中的正整数和负整数之间计算IF语句中的bool
- 返回一个整数以确定要显示的 switch 语句
- 使用'if'语句和"<<"时的结果错误,'>>'运算符比较 3 个整数