问下c 带参数的宏后边如果有逗号是什么意思,例如int x=3 #define f(x)=x*x,x x最后的f(
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/09 00:06:08
问下c 带参数的宏后边如果有逗号是什么意思,例如int x=3 #define f(x)=x*x,x x最后的f(
那个f(x)是多少呢?为什么?那个#define f(x) x*x,x+x貌似是手机问题,看不到那个加号…
但是我测试的时候为什么f(3)=9,f(3)+f(3)=9,f(3)*f(3)=9,这又是什么原因呢?这样的话不是程序是按照x*x进行的计算么?又怎么会是取右进行运算呢?
那个f(x)是多少呢?为什么?那个#define f(x) x*x,x+x貌似是手机问题,看不到那个加号…
但是我测试的时候为什么f(3)=9,f(3)+f(3)=9,f(3)*f(3)=9,这又是什么原因呢?这样的话不是程序是按照x*x进行的计算么?又怎么会是取右进行运算呢?
x*x,x+x
逗号表达式 右侧表达式
优先级:*> +> => ,
补充答案:
对于你的提供的
#define f(x) x*x,x+x
int x=3
您提供的表达式f(x)=x*x,x+x根据逗号表达式的右结合性,它取x+x的值为6
您提供的表达式f(x)+f(x)=x*x,x+x+x*x,x+x根据逗号表达式的右结合性,它取x+x的值为6
您提供的表达式f(x)*f(x)=x*x,x+x*x*x,x+x 根据逗号表达式的右结合性,它取x+x的值为6
如果您一定要得出答案为9的话可以写出如下算法:
#define g(x) f(x)=x*x,x+x
int x=3
您提供的表达式f(x)=x*x,x+x等号的优先级高于逗号,f(x)的值为9,g(x)的值为x+x为6
逗号表达式 右侧表达式
优先级:*> +> => ,
补充答案:
对于你的提供的
#define f(x) x*x,x+x
int x=3
您提供的表达式f(x)=x*x,x+x根据逗号表达式的右结合性,它取x+x的值为6
您提供的表达式f(x)+f(x)=x*x,x+x+x*x,x+x根据逗号表达式的右结合性,它取x+x的值为6
您提供的表达式f(x)*f(x)=x*x,x+x*x*x,x+x 根据逗号表达式的右结合性,它取x+x的值为6
如果您一定要得出答案为9的话可以写出如下算法:
#define g(x) f(x)=x*x,x+x
int x=3
您提供的表达式f(x)=x*x,x+x等号的优先级高于逗号,f(x)的值为9,g(x)的值为x+x为6
(35) 有以下程序#define P 3#define F(int x) { return (P*x*x);}main
带参数的宏定义 #define MIN(x,y) (x)
)define f(x)(x*x) 和 define f(x) x*x 之间的差别.
#define X 3 #define Y X*2 #undef X #define X 2 int z=Y; z 的值
若有宏定义# define s(x) x*x-x,设int k=3; 问cout
关于#define f(x) x*x一道题的理解
#define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf("%
#include #define f(x) x*x main() {int a=6,b=2,c; c=f(a)/f(b)
#define f(x) x*x main() {int a=6,b=2,c; C=f(a)?f(b); printf(
这道题就是看不明白(38) 有以下程序#define f(x) x*xmain( ){ int i; i=f(4+4)/
#define f(x) x*x*x main() { int a=3,s,t; s=f(a+1);t=f((a+1))
#define P 3 void F(int x){return(P*x*x);} main() {printf("%d