#定义一个b+c混淆.我没有得到预期的输出
#define a b+c confusion..I did not get the output that I expected
#include <iostream>
using namespace std;
# define p 5+3
int main() {
//code
int i=p*p;
cout<<i;
return 0;
}
预期输出:64实际输出:23howwW ? ?我不明白
p
将被5+3
取代。直线int i=p*p;
= int i=5+3*5+3;
。*
的排名比+
高,所以结果是23
。
你需要对你的定义进行修饰:
#define p (5+3)
int i=p*p;
p*p
被替换为5+3*5+3
,从而得到23 (5+15+3=23)
.如您所知,*
将在+
之前求值。
定义宏如下-
#define p (5+3)
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- 增量运算符与后缀混淆
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 混淆了具有虚拟继承的程序输出
- bash:重定向输出混淆
- C++转义字符和引用变量输出混淆
- C++ 对输出的混淆
- 通过 Ubuntu 上的 C++ system() 将输出与 SIPp 远程命令混淆
- 汇编代码的输出-与add混淆
- #定义一个b+c混淆.我没有得到预期的输出