目录
7.2.5
7.2.6
7.3.2
7.2.5
答:返回值为9,理由如下:
将a赋值为3,调用f(a,a),则传递参数为x=3,y=3,
在函数体内部,x=x+1得到值为4,y=y+2得到值为5,
返回值为x+y,因此返回值为9。
7.2.6答:由题意,得:
int c=4; int *b=&c; int **a=&b;
调用f(c,b,a)之后,将c、b、a的值压栈,即作为传递参数,之后调用函数,
则在函数体内,x=4,py=b(指针),ppz=a(指针),
因此**ppz得到调用者中的变量c的值,**ppz+=1将c的值由4更改为5。
同理,*py+=2将c的值由5更改为7。
X是f函数块内的局部变量,执行x+=3则将x的值由4改为7。
因此,return x+*py+**ppz相当于return x+c+c,即7+7+7=21。
7.3.2欢迎分享,转载请注明来源:内存溢出
评论列表(0条)