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

A. c=*p1+*p2

C. p1=p2

B. p2=c

D. c=p1(*p2)

答案:B. p2=c

解释:

  • p1和p2指向同一个字符,意味着它们指向同一个内存地址。
  • p2=c 试图将一个字符变量c的值赋给一个指针变量p2。这在C语言中是错误的,因为指针变量存储的是内存地址,而字符变量存储的是字符值。
  • 其他选项都是正确的:
    • **c=p1+p2:将指针p1和p2指向的字符值相加,并将结果赋给字符变量c。
    • p1=p2:将指针p2指向的内存地址赋给指针p1,使p1和p2指向同一个字符。
    • c=p1(*p2):将指针p1和p2指向的字符值相乘,并将结果赋给字符变量c。

总结:

在C语言中,指针变量只能赋值为内存地址,不能直接赋值为字符值。因此,选项B是错误的。

C语言指针赋值:指向同一字符的指针变量的正确操作

原文地址: https://www.cveoy.top/t/topic/ngNG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录