12.若定义:int a,*p=&a; 则a与下列表达式 B 等价.请问ACD哪错了?A) p B) *&a C) *&
来源:学生作业帮 编辑:神马作文网作业帮 分类:数学作业 时间:2024/11/11 18:24:25
12.若定义:int a,*p=&a; 则a与下列表达式 B 等价.请问ACD哪错了?A) p B) *&a C) *&p D)&*a
1、在*p=&a中,&a表示a这个变量的存放地址,然后把这个地址放到p这个变量中,所以p是一个指针变量(用*p表示),所以,打印出来的p仅仅是存放a的一个地址,而不是a变量本身.所以,A)是错误的.
2、*&a先是指向a的地址,再用指针指向这个地址,当然还是变量a本身.其实,任何变量的“*&(变量名)”都是指的这个变量本身,如:*&a就是a,*&p也与p完全等价,即:*&a==a,*&p==p是恒成立的.这也就说明了B)是正确的,C)是错误的.
3、&*a这样的写法根本不知所以然,没有任何意义.所以D)也是错误的.
2、*&a先是指向a的地址,再用指针指向这个地址,当然还是变量a本身.其实,任何变量的“*&(变量名)”都是指的这个变量本身,如:*&a就是a,*&p也与p完全等价,即:*&a==a,*&p==p是恒成立的.这也就说明了B)是正确的,C)是错误的.
3、&*a这样的写法根本不知所以然,没有任何意义.所以D)也是错误的.
若有:int a,*p=&a; 则下面哪个表达式为假__________.A *p= =&a B p= =&*p C a
若有定义:int x ,* p ; 则以下正确的赋值表达式是______ A.p = &x B.p = x C.*p =
对于变量定义int p[5],*a[5],下列哪个表达式是正确的?A.p=a B.p[0]=a C.*(a+1)=p D
根据声明int a[10],*p=a;,下列表达式错误的是_____.A.a[9] B.p[5] C.*p++ a++
若有定义 int b=7;float a=2.5, c=4.7;则下列表达式 a+(int)(b/3*(int)(a+c
若有以下定义,则对a数组元素的正确引用是( ).int a[5],*p=a; A.*&a[5] B.a+2 C.*(p+
若有定义语句int a[5], *p=a;,则对a数组元素的正确引用是什么 A *&a[5] B *a+2 C *(p+
若有定义:int *p,a=4; p=&a;则以下均代表地址的是:A)a,p B)&a,p C)&a,*p D)a,*p
int[]={12,34,56,78},*p=a 下列 表达式的是56是 A.p[1+2] B.*(a+2) C.a[3
若已定义 int a[ ]={1,2,3,4},*p=a,则下面表达式中值不等于2的是A.*(a+1)B.*(p+1)C
若有定义:int x,*p;则以下正确的赋值表达式是 A.p=x B.*p=&x C.p=&x D.p=*x 分析
若有定义:int b=7;float a=2.5,c=4.7;则下面的表达式 a+(int)(b/3*(int)(a+c