若有说明: int *p,m=5,n;以下正确的程序段是()
问题描述:
若有说明: int *p,m=5,n;以下正确的程序段是()
A)p=&n;
scanf("%d",&p);
B)p=&n;
scanf("%d",*p);
C)scanf("%d",&n);
*p=n;
D)p=&n;
*p=m;
答
D是正确的
A,B中 p是n的地址 那么如果要输入n 应该是scanf("%d",p);
C中 p还没定义 给*p赋值就是给一个没有开辟的地址赋值了
D是正确的 意思是p为n的地址,将p地址上的数变成m,等价于n=m;