以下选项中,对指针变量p不正确的操作是:
A)int a[5],*p;
p=&a;
B)int a[5],*p;
p=a;
C)int a[5];
int *p=a=1000;
D)int a[5]
int *p1,*p2=a;*p1=*p2;
解释清楚哦!!!!!
我觉得D选项的错误不是 :
“错在*p2=a,*p2表示的是内存地址中的值,而a是常量地址,类型不匹配,产生编译错误。”
D选项的错误应该是 指针p1没有确定的指向,就不能取值,即*p1,所以就不能:*p1=*p2;。
int *p1,*p2=a;这个是没有问题的!
例子:*p1=*p2 就是一个赋值操作
#include <stdio.h>运行结果为:
0 0 0 0 0
1 0 0 0 0