何艺铧 发表于 2021-12-7 20:58:23

求帮助2!

#define F(n) 2*n
那么请问代码中 F(3+2) 的值等于多少?sQzqH,Rg
<,B;0Pr|qmOf47zl&ng_Y1
答:F(3+2) == 2*3+2 == 8,注意,宏定义是在程序编译时先进行的预处理,做法是直接将标识符替换为常量,并不会进行相关运算。因此,直接将 F(3+2) 替换为 2*3+2。
怎么打印出F(n)的值,我打印的是10,怎么不是8.
#include <stdio.h>
#define F(n) 2*n
int main(void)
{
        int n = 3 + 2;
        printf("%d", F(n));
        return 0;
}

D#include <stdio.h>
#define F(n) 2*n
int main(void)
{
        int n = 3 + 2;
        printf("%d", F(n));
        return 0;
}

发表于 1970-1-1 08:00:00

henkuderen 发表于 2021-12-8 16:10:13

直接printf("%d" , F(3+2) ); 你这样先定义完n=3+2后再F(n)的话实际执行的就是F(5)=2 x 5 = 10.

何艺铧 发表于 2021-12-8 16:14:49

thank you
页: [1]
查看完整版本: 求帮助2!