C语言指针变量赋值:哪些操作是错误的?

假设p1p2是指向同一个字符的指针变量,c为字符变量,以下哪个赋值语句不能正确执行?

A. c=*p1+*p2 B. p1=p2 C. p1=&c D. c=*p1*(*p2)

解析:

选项C是错误的。p1p2是指向同一个字符的指针变量,这意味着它们指向同一个内存地址。而c是一个字符变量,它拥有自己的内存地址。p1=&c试图将p1指向c的地址,这会导致p1不再指向原来的字符,从而导致程序错误。

其他选项解析:

A. c=*p1+*p2:将p1p2指向的字符的值相加,结果赋值给c,这是正确的。 B. p1=p2:将p2指向的地址赋值给p1,使p1也指向同一个字符,这是正确的。 D. c=*p1*(*p2):将p1p2指向的字符的值相乘,结果赋值给c,这是正确的。

C语言指针变量赋值:哪些操作是错误的?

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

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