C语言,设int a=3,执行printf(“%d”,-a++)后,输出结果为( )_百度...
发布网友
发布时间:2024-10-04 20:48
我来回答
共2个回答
热心网友
时间:2天前
结果是111.
调用函数的时候,函数的参数是从后往前依次通过堆栈传参.
比如一个函数:
aaa(
1,2,3
);
这里是先把
3
入栈,然后是
2
,最后是
1
.
那么同样,
printf
的其中三个参数排列依次是
--a,a++,--a
其中a的值是
2
,先算倒数第一个
--a,
再算a++,
最后才算第一个--a.(
注意:
这里有一个a++需要特别注意,是先把a当前的值传参以后再自加1的.
)
这样算下来,每次a的值都是1,然后被printf打印出来.
热心网友
时间:2天前
答案是-3
这里注意-
和
++的优先级
再次
要注意
a++和++a
的区别
a++是
运行完之后
+1
即如上题
输出-3
++a
是
当前+1
如果是
printf(“%d”,-(++a))
则输出的结果是-4
这个题目主要的点还是在于
a前++
即(++a)
还是
a后++
即(a++)
C语言,设int a=3,执行printf(“%d”,-a++)后,输出结果为( )_百度知...
结果是111.调用函数的时候,函数的参数是从后往前依次通过堆栈传参.比如一个函数:aaa(1,2,3 );这里是先把 3 入栈,然后是 2 ,最后是 1 .那么同样,printf 的其中三个参数排列依次是 --a,a++,--a 其中a的值是 2 ,先算倒数第一个 --a,再算a++,最后才算第一个--a.(注意:这里有一个...
设有语句int a=3,执行语句printf("%d\n",-a++);后输出的结果是...
输出结果是-3 变量a的值为4 a++表示当a先参与运算,再自身加1 ++a表示a先自身加1,再参与运算,这个先后顺序要搞清楚 如果是-(++a)结果就是 输出-4,a的值也是4
c语言中int a=2,printf("%d%d%d",--a,a++,--a)输出结果是什么,为什么...
然后,c=a++是先做c=a,接着a再自增1,所以c=1,a=2;最后,d=--a参照b=--a。
C语言问题: #include <stdio.h> int main() { int a=3,
所以顺序为首先a+=a,此时a=2a;然后a-=a,此时=0;然后c=a=0
c语言中int a=2,printf("%d%d%d",--a,a++,--a)输出结果是什么,为什么...
printf是自右往左运算的 先算最右边的--a,--a整个表达式的值是1,将1压栈,运算结束后a=1.其次是中间的a++,a++表达式的值是1,将1压栈,运算后a=2;最后是最左边的--a, --a表达式的值是1,将1压栈,预算后a=1。然后将栈的值依次出栈。结果是111 ...
执行以下语句后的输出结果是___。 int x=3,y=0; printf("%d,%d...
首先看第一个结果 -1>x>-10&&1<x<10 把x=3带入 -1>3>-10&&1<3<10 按照运算优先级,判断大小要比逻辑与操作优先,所以是 (-1>3>-10) && (1<3<10)-1 > 3 是假,所以结果为 0 0 > -10 是真,所以结果为 1 右边也一样得 1 1 && 1 结果就是 1 第二个类似就不写了 ...
一道c语言选择题,大家能帮我解释一下吗
(a,b)算法规则是从左向右计算,返回的值取最右边的 所以printf("%d,%d",(a,b),(b,a));相当于printf("%d,%d",b,a);在例如,这个题如果是这样的话,设inta=3,b=4;执行printf("%d,%d",(a+b,b),(b,a+b));后的输出结果就是4(b的值),7(a+b的值)。不懂可追问哦!
以下程序的输出结果为 void main() { int a = 3; printf(“%d\n...
从右往左开始计算a的值 最后一步运算是a-=a;也就是a=a-a; 所以a=0;
C语言:读程序写结果 main() { int a=3,b=0; int *p=&a,*q=&b; a=*...
p指向a,q指向b,后续并没有对p和q更改值的操作(只有对*p赋值)所以定义后面的两句等同于 a=b a=b 两次一样的操作 最终a为0,b不变也是0
...int a=3, b=2; a=a+b; b=a-b; a=a-b; printf("%d , %d \n", a...
输出 2,3