设有定义语句:int =0,*p=&你,*q;以下选项正确的是?a;p=1 b:p=q c:*p=*q
问题描述:
设有定义语句:int =0,*p=&你,*q;以下选项正确的是?a;p=1 b:p=q c:*p=*q
答
使用了逗号操作符,实际上等于:
int n = 0;
int *p = &n;
int *q;
所以,n是整型,p,q是整型指针.a错了,c也错了,*p是解引用操作,得到的是p所指向的内存区域的值.它不能作为一个“左值”(left value,也即location value,就是地址值).
只有b是对的,使p指向q所指向的内存区域.