int f(int x, int *py, int **ppz)
{
int y, z;
**ppz += 1;
z = **ppz;
*py += 2;
y = *py;
x += 3;
return x + y + z;
}
void main()
{
int c, *b, **a;
c = 4;
b = &c;
a = &b;
printf("%d ", f(c, b, a));
return 0;
}
(A) 18
(B) 19
(C) 21
(D) 22答案: (B)
说明:让我们逐行了解此内容
/* below line changes value of c to 5. Note that x remains unaffected by
this change as x is a copy of c and address of x is different from c*/
**ppz += 1
/* z is changed to 5*/
z = **ppz;
/* changes c to 7, x is not changed */
*py += 2;
/* y is changed to 7*/
y = *py;
/* x is incremented by 3 */
x += 3;
/* return 7 + 7 + 5*/
return x + y + z;
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。