已有定义char k=2; char *ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是( )。 A. *ptr1=*ptr2 B. *k=*ptr1*(*ptr2) C. *ptr2=k+2 D. k=*ptr1+*ptr2
时间: 2023-02-07 16:54:19 浏览: 175
浅析char 指针变量char *=p 这个语句的输出问题
5星 · 资源好评率100%
A. *ptr1=*ptr2
B. *k=*ptr1*(*ptr2)
D. k=*ptr1 *ptr2
这三个赋值语句都不能正确执行。
A. 因为k是一个char类型的变量,ptr1和ptr2都是指向k的指针,而*ptr1和*ptr2都表示指针所指向的内存中的值。所以*ptr1=*ptr2是将两个指针所指向的值赋值给了彼此,这是不合法的。
B. 在C语言中,k是一个char类型的变量,不能对它进行解引用操作。所以*k=*ptr1*(*ptr2)是不合法的。
D. k=*ptr1 *ptr2这个赋值语句中,*ptr1 *ptr2的值会先被计算,然后再赋值给k。但是*ptr1 *ptr2这个表达式中,*ptr1和ptr2之间没有运算符,所以会产生语法错误。
阅读全文