C语言指针赋值:指向同一字符的指针变量的正确操作
设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是错误的。
原文地址: https://www.cveoy.top/t/topic/ngNG 著作权归作者所有。请勿转载和采集!