变量后的+号是什么意思
what does + sign after variable mean?
以下代码
的输出是什么 int x,a=3;
x=+ +a+ + +a+ + +5;
printf("%d %d",x,a);
输出为:11 3。我想知道怎么做?+符号后意味着什么?
我认为DrYap是对的。
x = + + a + + + a + + + 5;
与以下相同:
x = + (+ a) + (+ (+ a)) + (+ (+ 5));
这里的关键点是:
1)C,C ++没有+作为后缀运算符,所以我们知道我们必须将其解释为前缀
2)一元+比二元+结合更紧密(优先级更高)
很有趣不是吗?如果这些是 - 迹象它看起来不会那么奇怪。Monadic +/- 只是一个前导符号,或者换句话说,"+x"与"0+x"相同。
a 后面的 + 在下一个值之前被视为 +。如果使用一致的间距,则
与:x = + + a + + + a + + + 5;
但并非所有 + 都是必需的,因此它的作用与执行相同:
x = a + a + 5;
a 的值保持不变,因为您从未使用过递增运算符,该运算符为 ++,两个 + 符号之间没有空格。 + 和 ++ 是两个单独的运算符。
由于+
运算符从来不是两个相邻的,而是总是用空格分隔,因此语句 x=+ +a+ + +a+ + +5;
实际上读作
x=+ (nothing)+a+(nothing) +(nothing) +a+(nothing) +(nothing) +5;
所以基本上最终的等式变成了这样的 x=a+a+5;
,因此结果。
代码似乎等效于:
x= (+(+(a)))+ (+ (+(a)))+ (+(+(5)));
即 x = a + a + 5
.这是11。你知道你可以在数字前面加上+或-符号,对吧?现在这些+
只是表示变量的符号。由于符号是+
,变量保持不变,即"+5"表示"5",所以"+a"表示"a","+ +a"表示"+(+a)",表示"a"。以同样的方式,您可以写x = + + + 3 + + + + 3 + + + + 5
.或者x = - + + - 3 + - + - 3 - - + 5;
.
+ +a+ + +5 : 这相当于
x = x=+ +a+ + +a+ + +5 或我们可以把它写成 x = + (+ a) + (+ (+ a)) + (+ (+ 5))+仅表示最终评估为的符号x = a + a + 5。
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思