若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是( )
A)p=q B)*p=*q C)n=*q D)p=n
因为 p 是一个指向 n 的指针,它存储的是变量 n 的地址。而 D 选项中的赋值语句 p=n 将整型变量 n 的值尝试赋值给指针变量 p,这是不合法的。因为它们的类型不同,指针变量 p 存储的是地址,它的类型是一个指针类型,而整型变量 n 的类型是 int。
A)p=q:这是一个合法的赋值语句。指针p和q都是指向n的地址,因此可以将q的值(即指向n的地址)赋给p。
B)*p=*q:这是一个合法的赋值语句。*p和*q分别表示指针p和q所指向的值,因为p和q都指向n的地址,所以可以将*q的值(即n的值)赋给*p。
C)n=*q:这是一个合法的赋值语句。*q表示指针q所指向的值,因为q指向n的地址,所以可以将*q的值(即n的值)赋给n。
D)p=n:这是一个非法的赋值语句。p是一个指针变量,而n是一个整数变量,它们的数据类型不匹配,无法将整数值赋给指针变量。
因此,选项D)p=n是非法的赋值语句。
P和q同样是指针类型,指向同一地址&N,而N是整型变量,不能把整型变量的值赋给指针的;
D
用户登录可进行刷题及查看答案
登录后提交答案