#include<stdio.h>
int func(int a,int b)
{
int c;
c=a+b;
return c;
}
void main()
{
int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d",r);
}
这个形参和实参是怎么结合的
#include<stdio.h>
int func(int a,int b)
{
int c;
c=a+b;
return c;
}
void main()
{
int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d",r);
}
这个形参和实参是怎么结合的
给你分析下:
int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
(x--,y++,x+y) 是个数据 ,它是逗号表达式的值
(x--,y++,x+y) -> x-- x=5 -> y++ y=8 -> x+y=5+8=13
z-- -> z=7
所以 fun(13,7)
return 13+7 ->return 20;
func((x--,y++,x+y),z--);包括两个实参,第一个是括号表达式(x--,y++,x+y),第二个是z--
括号表达式返回最右边表达式的值,应该是x+y
这样就调用fun()函数返回x+y和z--的和