第 8 章 指 针 【练习8-1】如果有定义”int m, n = 5, *p = &m;”与 m = n 等价的语句是 B
A.m = *p; B
*p = *&n; C
m = &n; D
m = **p; 解答: A:p 是指向 m 的指针变量,所以*p 等价于 m
B:&n 是 n 的地址,*&n 是 n 的值,即把 n 的值赋给 p 指向的值 m
C:&n 是 n 的地址
即把 n 的地址赋给 m
D:**p 是指 p 指向的指针所指向的值,在此无意义
【练习8-2】调用函数求两个数的和与差:计算输入的两个数的和与差,要求自定义一个函数 sum_diff(float op1,float op2, float *psum, float *pdiff),其中 op1 和 op2 是输入的两个数,*psum 和*pdiff 是计算得出的和与差
解答: #include void sum_diff(float op1,float op2,float *psum,float *pdiff); int main(void) { float op1,op2,sum,diff; printf("Input op1 and op2: "); scanf("%f%f",&op1,&op2); sum_diff(op1,op2,&sum,&diff); printf("%f+%f=%f;%f-%f=%f \n",op1,op2,sum,op1,op2,diff); return 0; } void sum_diff(float op1,float op2,float *psum,float *pdiff) { *psum=op1+op2; *pdiff=op1-op2; } 【练习8-3】两个相同类型的指针变量能不能相加