指针与数组
设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( )A).k=*P1+*P2; B).p2=k; C).P1=P2; D).K=*P1 * (*P2);
在 C++ 中,指针是用来存储内存地址的变量。在这个问题中,P1 和 P2 是指向同一个 int 类型一维数组的指针。k 是 int 型变量。根据这些信息,我们可以对每个选项进行分析:
A) k = *P1 + *P2;这个表达式是合法的,*P1 和 *P2 都返回数组的第一个元素的值,然后将这两个值相加,将结果赋值给 k。
B) P2 = k; 这个表达式是不正确的,因为 P2 是一个指针,只能存储内存地址,而 k 是一个 int 型变量,其值并非内存地址。除非 k 存储的是一个内存地址,否则这个表达式会引发错误。
C) P1 = P2; 这个表达式是合法的,因为 P1 和 P2 都是指针,可以进行赋值操作。
D) K = *P1 * (*P2); 这个表达式也是合法的,同样 *P1 和 *P2 都返回数组的第一个元素的值,然后将这两个值相乘,将结果赋值给 k。
所以选项 B 是不能正确执行的语句。 插眼
页:
[1]