#include <stdio.h>
f(int a)
{
int b=0,c=3;
a=c++,b++;
return(a);
}
void main()
{
int a=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d",k);
}
C语言,想问问这个为啥是3
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 丨秋水丨 2022-05-13 17:50关注
a=c++,b++;
这条表达式使用了逗号运算符','和赋值运算符'=',以及++运算
++运算符的优先级最高,所以先计算c++和b++,
=运算的优先级高于逗号运算符,所以是先将c++的结果赋值给了a,即a=c++
c的初始值是3,c++的结果也是3,所以执行a=c++后,a的值是3
f返回a的值,所以f返回3
3又被赋值给了k,所以最后输出的是3本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 相敏解调 matlab
- ¥15 求lingo代码和思路
- ¥15 公交车和无人机协同运输
- ¥15 stm32代码移植没反应
- ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
- ¥100 连续两帧图像高速减法
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?