C语言 ,急!!!!!!!要详细!!!
#include<stdio.h>func(inta,intb){intcc=a+breturnc}main(){intx=2,y=4,z=6,r;r=func((x--...
#include<stdio.h>
func(inta,intb)
{
int c
c=a+b
return c
}
main()
{
int x=2,y=4,z=6,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
} 展开
func(inta,intb)
{
int c
c=a+b
return c
}
main()
{
int x=2,y=4,z=6,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
} 展开
6个回答
展开全部
首先你的函数func(inta,intb) 中的参数要写成func(int a,int b)不要连在一起,函数中的三个语句也没有分号。
主函数中调用func函数的两个实参为"x--,y++,x+y"和z--,"x--,y++,x+y"为逗号表达式,它的值是最后一个表达式x+y的值。变量"x"的值为原来是2,经x--结果现在为1,变量"y"的值原来为4,经y++现在为5,逗号表达式的值为"x+y"的值,也就是6,将值6赋给被调用函数的形参变量"a",即变量"a"的值为6。z--这个参数是将z 的值6先赋给形参变量"b"后,再--为5,形参变量"b"的值为6,所以在func函数中"c"的值为"a+b"的值,等于12。通过return c 将c的值传回调用处,即func()的值为12,也就是r被赋值为12
主函数中调用func函数的两个实参为"x--,y++,x+y"和z--,"x--,y++,x+y"为逗号表达式,它的值是最后一个表达式x+y的值。变量"x"的值为原来是2,经x--结果现在为1,变量"y"的值原来为4,经y++现在为5,逗号表达式的值为"x+y"的值,也就是6,将值6赋给被调用函数的形参变量"a",即变量"a"的值为6。z--这个参数是将z 的值6先赋给形参变量"b"后,再--为5,形参变量"b"的值为6,所以在func函数中"c"的值为"a+b"的值,等于12。通过return c 将c的值传回调用处,即func()的值为12,也就是r被赋值为12
展开全部
12
(x--,y++,x+y)表达式返回最右边的值
x--,y++后x=1,y=5,x+y = 6;
z--表示先返回z,然后z自减1
那么就是r=func(6,6);r=12;
(x--,y++,x+y)表达式返回最右边的值
x--,y++后x=1,y=5,x+y = 6;
z--表示先返回z,然后z自减1
那么就是r=func(6,6);r=12;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
答案 12
讲解如下:
r=func((x--,y++,x+y),z--);中(x--,y++,x+y)是一个逗号表达式,值为最后一个表达式的值。这里x--后x=1,y++后y=5,所以(x--,y++,x+y)的值就是x+y,等于1+5=6。
所以r=func((x--,y++,x+y),z--);即为r=func(6,z--);
而z--是先运算后,z才减1,所以r=6+6=12.
讲得不太好,希望明白!~
讲解如下:
r=func((x--,y++,x+y),z--);中(x--,y++,x+y)是一个逗号表达式,值为最后一个表达式的值。这里x--后x=1,y++后y=5,所以(x--,y++,x+y)的值就是x+y,等于1+5=6。
所以r=func((x--,y++,x+y),z--);即为r=func(6,z--);
而z--是先运算后,z才减1,所以r=6+6=12.
讲得不太好,希望明白!~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
执行"x--,y++,x+y"逗号表达式后,变量"x"的值为1,变量"y"的值为5,逗号表达式的值为表达式"x+y"的值,即6!将值6赋给被调用函数的形参变量"a",即变量"a"的值为6。主函数中,变量"z"将值6赋给被调用函数的形参变量"b"后,变量"z"为5,形参变量"b"的值为6,最后变量"c"的值为"a+b"的值,等于12
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
func(int a,int b) //空格
{
int c ; //分号
c=a+b; //分号
return c ;//分号
}
main()
{
int x=2,y=4,z=6,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
func(int a,int b) //空格
{
int c ; //分号
c=a+b; //分号
return c ;//分号
}
main()
{
int x=2,y=4,z=6,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
what
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询