这个c语言怎么来的结果?
发布网友
发布时间:2022-03-31 00:32
我来回答
共3个回答
热心网友
时间:2022-03-31 02:02
楼主肯定是把它当函数用了😂,
#define MAX(x, y) (x) < (y) ? (x) : (y)
10 * MAX(i, j)展开之后就是:
10*i>j?i:j
这样一代入就是:
10*10>15?10:15
很显然是成立的,所以就取10了,
而不是你想当然的
10*(x>y?x:y)
很自然而然的就加上括号了😂😂,这是很多人都会犯的错误,宏定义可以实现类似函数的功能,但实际上终归不是函数,而且宏定义括号里的参数也不是真正的参数,所以不要主观的加括号。在宏展开时对参数进行的只是文本替换,如果在整个三目运算符外面套一个括号的话,结果就是150了
望采纳😁😁😁
热心网友
时间:2022-03-31 03:20
printf("%d,%s"\n,--i,p++); 应该是printf("%d,%s\n",--i,p++); *p=s+3;这个是指p 指向s数组的第四个元素(4); printf("%d,%s\n",--i,p++);打印--i的值与p指向数组的元素 (从s[3](即4)开始到最后一个元素 p指向s[]的地址,操作p等于操作s[]数组追问靠恁娘
热心网友
时间:2022-03-31 04:54
做这类宏相关的题目,最好在草稿纸上进行宏展开,展开后k的赋值表达式为:
k=10*(i)>(j)?(i):(j)
代入对应变量值,即为:
k=10*10 > 15 ? 10 : 15
因为100>15 为真,所以最后 k=10
追问谢谢
C语言,这个的结果,是怎么算出来 的?
t = (a+b)>(c+d)?(a+b):(c+d)*10 即 t = (7)>(6)?(7):(6)*10 就是 t = 7 正确定义方法:define MAX(x,y) ((x)>(y)?(x):(y))
c语言 请问这个结果怎样计算出来的
编译时优化或不优化 会得不同结果。这是 c/c++ 语言中的 前缀++,--,后缀++,-- 的严重缺点。自己编程时,要避免 在一句语句中 用 多个 这种运算符。
c语言,这个运行结果是多少,怎么来的?
因为变量c是静态局部变量,所以其生存期与程序相同,每次调用后其值将长期保留(不会被内存释放),其初始值是当程序运行时第一次赋的值,以后调用不再赋初始值(再次进入f函数时,第二句赋值语句不执行),因此,第一次调用f函数时c为5(a=c++是先赋值后自增),第二次调用f函数时c为6,又因为逗号运算符的...
C语言,这个结果是怎么出来的?
(从s[3](即4)开始到最后一个元素 p指向s[]的地址,操作p等于操作s[]数组
c语言中如何让程序运行输出结果?
1、首先在打开的c语言软件中,第一行输入代码,表示输出。2、接下来输入三行代码,输入的值在这里进行转换,如下图所示。3、接下来就用到了if,这里表示如果的意思,如下图所示。4、现在开始运行,CTRL+F5,接下来在控制台上随便输入3个数。例如:60,50,40,就可以看到输出了40,表示运行成功了。
这c语言的题的值怎么来的?
b--<=0: 在这个条件中,我们先比较b的值是否小于等于0,结果为false。然后,我们对b进行自减操作,即b的值从1变为0。由于if语句的条件是一个逻辑与操作(&&),只有当两个条件都为true时,整个条件才为true。在这个例子中,第一个条件为false,所以整个条件为false。根据C语言的短路求值规则,当...
C语言,有人知道答案是怎么出来的吗?
// d/100 对100取整,值为2 // 2%9 对9取余,值为2 // && 逻辑与, C语言中非0为真 真&&真 = 真 ,值为1(C语言默认真为1)
C语言,下面那段程序怎么得出这样的结果
1、前面的“0x”输出还是0x,表示输出的数是十六进制而已,后面的08x中x表示值i-j是按十六进制输出的,08意思是指定数据最小输出长度为8,不够8位则补零,大于8位按照原位数输出。2、第二个结果是因为unsigned类型相减会发生溢出,小的减大的结果大于0 ...
C语言请问这题结果怎么算呀,怎么得出来的?
算术优先级 赋值操作符 自右向左 a = (b == c)b == c 是 1
一道简单的c语言题。问一下结果是怎么出来的。
输出结果应该是:i=5 i=2 i=2 i=0 i=2 说明如下:int i=0;//这里声明了一个全局变量,但是下面函数中有同名局部变量,所以实际没什么作用main(){int i=5;reset(i/2);//这个函数中并没有改变i的值,所以运行后i还是5printf("i=%d\n",i);//所以这里打印i=5reset(i=i/2);//这个...