下面对于指针的描述不正确的是( )。
A. 指针指向不同基类型的变量长度不同
B. 指针不能用除0以外的常量赋值
C. 两个指针变量的加法无意义
D. 指针是地址变量
若有定义int *p,m=5,n;以下程序段正确的是()。
A. scanf("%d",&n);*p=n ;
B. p=&n;scanf("%d",&p);
C. p=&n;*p=m;
D. p=&n ;scanf("%d",*p);
若有int *p,a=4;和p=&a;下面()均代表地址。
A. *&p,*p,&a
B. &*a,&a,*p
C. &a,&*p,p
D. a,p,*&a
执行以下程序后,a的值为()。int main(){int a,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(-*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);return 0;}
A. 1
B. 0
C. -1
D. 4