让我们逐个分析这些选项:
A) p=q
这是合法的赋值语句。 p 和 q 都是指向 int 类型数据的指针,所以可以将 q 的值(即一个地址)赋给 p 。
B) *p=*q
这也是合法的赋值语句。 *p 和 *q 都表示解引用指针得到它们指向的 int 类型的数据,所以可以将 *q 的值赋给 *p 。
C) n=*q
这同样是合法的赋值语句。 n 是一个 int 类型的变量, *q 是解引用指针 q 得到的 int 类型的数据,所以可以将 *q 的值赋给 n 。
D) p=n
这是非法的赋值语句。 p 是一个指向 int 类型数据的指针,而 n 是一个 int 类型的变量。不能将一个非指针类型的值赋给一个指针类型的变量。正确的做法是将 n 的地址赋给 p ,即 p = &n; 。
因此,选项 D p=n 是非法的赋值语句。正确的答案是 D。
登录后提交答案