#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);
}
a=c++,b++;
这条表达式使用了逗号运算符','和赋值运算符'=',以及++运算
++运算符的优先级最高,所以先计算c++和b++,
=运算的优先级高于逗号运算符,所以是先将c++的结果赋值给了a,即a=c++
c的初始值是3,c++的结果也是3,所以执行a=c++后,a的值是3
f返回a的值,所以f返回3
3又被赋值给了k,所以最后输出的是3
f(a++)的值与参数a无关
只和a=c++,b++;有关系,而这一句的结果是a=c.