以下程序的输出结果是
void sub(float x, float *y, float *z)
{ *y = *y - 1.0;
*z = *z + x;
}
void main ()
{ float a = 2.5, b= 9.0, *pa, *pb;
pa = &a; pb = &b;
sub(b - a, pa, pb);
printf(“%f\n”, a);
}
A、10.500000
B、9.000000
C、1.500000
D、8.000000
指针呗,pa是指向a的指针,而在函数sub里,把pa作为实参传到了形参y,y当然也是指针,*y在前面加上一个星号表示解引用,那么对*y的操作就会原原本本的对应到主程序里的a上面(因为y指向a的地址,所以是直接对a的那块内存进行操作),于是最后对a的操作其实就是a = a- 1.0
2.5-1.0 = 1.5
不懂得话就到网上搜一搜c语言指针的知识,这里简单几句也说不完