设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是

设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是( B )
(A) c=*p1+*p2;
(B) p2=c;
(C) p1=p2;
(D) c=*p1*(*p2);
请把其他错误选项解释清楚,正确选项也要解释一下
为什么能相加呀

选B
p1 和p2 定义的是指针变量 c为字符变量
A项 *(取内容符) 将p1 p2指向的变量的值的和赋给c是可以的。
B项 c是字符变量 p2是指针变量 ,指针变量只能付地址 改为p2=&c是可以的。
C项 指针就是地址p1 和p2是可以相互赋值的。
D项 是取其内容运算不是指针运算,是对的

指针是不能相加的 ,没有意义的。只有大小比较和相减运算。因为地址在内存中是从小到大按直线排列的 所以是可以比较大小的
指针相减是相差多少位,它除以所占字节就是指针间元素的个数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-01-19
相加,相乘虽然不符合逻辑,但代码能执行.因为字符变量实际上就是整数(该字符的ASCII码值),整数当然能做四则运算
第2个回答  2010-01-19
选b、、因为p2是一个指针变量,指针变量只可以存放地址,而c是一个字符变量,它不是地址,所以不能把c赋给p2。
第3个回答  2010-01-19
B吧,具体还是自己看吧
第4个回答  2010-01-19
B啊,指针变量只能付地址 ,正确的咋解释啊