若有说明:int n=2 *p=&n *q=p; 则以下非法的赋值语句是(). A) p=q; B) *p=*q; C) n=*q; D) p

大学网课 已帮助 人

若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(). A) p=q; B) *p=*q; C) n=*q; D) p=n;

A.p和q是同类型的指针变量

B.把q所指向空间中的值赋给p所指向空间中

C.n可以获得q所指向空间中的值

D.int n=2,*p=&n,*q=p;中已定义p是指针变量且已获得变量n的地址,而p=n是让p获得n的值,这是无意义的。

若有说明:int n=2 *p=&n *q=p; 则以下非法的赋值语句是(). A) p=q; B) *p=*q; C) n=*q; D) p

热搜:检验检疫类别P.R/Q.S的含义是什么

回答

共1条回复

  • D 解析:本题中首先定义了一整型变量n并赋初值为2,接着定义了一个整型指针变量p并让它指向n,接着又定义了一指向指针的指针变量q。选项A中给指针变量p赋值q,故这个赋值语句正确。选项B中*p=*q就是将*q的值赋给指针变量p所指向的变量n,故这个赋值语句不是非法的赋值语句。选项C中是将*q的值赋给变量n,故这个表达式不是非法的赋值语句。选项D中p为一指针变量,应该将一地址赋给它,而在此选项的表达式中将变量n而不是n的地址赋给它,故这个表达式不合法。