这个程序谁能看懂,谁能讲解这个程序是什么意思?求解

[复制链接]
查看11 | 回复3 | 2021-1-27 06:17:38 | 显示全部楼层 |阅读模式
#include
intfun(intA)
{
intb=0;
staticintc=3;
a=(c++,b++);
return(a);
}
main()
{
inta=2,i,k;
for(i=0;i -->
回复

使用道具 举报

千问 | 2021-1-27 06:17:38 | 显示全部楼层
程序有错:
intfun(intA)

a=(c++,b++);//a未定义
回复

使用道具 举报

千问 | 2021-1-27 06:17:38 | 显示全部楼层
结果应该是
0
0

回复

使用道具 举报

千问 | 2021-1-27 06:17:38 | 显示全部楼层
输出是0
关键是a=(c++,b++);这句,逗号运算符的顺序是这样的:
1、取c和b的值,参与逗号运算符运算,返回b的值给a
2、执行c+1和b+1
因为b是临时变量,每次调用函数都被初始化成0,所以不管你a参数传进来什么,逗号运算符永远返回b的值
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行