无法从“char *”转换为“char”
#include <stdio.h>
char ch;
char *p;
int main(void)
{
char ch=5;
char *px=&ch;// 1行
*p=&ch;// 2行
while(1);
return 0;
}
在此函数中,“1行”是没问题的,到了“2行”就出现错误:: error C2440: “=”: 无法从“char *”转换为“char”,为什么呢?
请指点!
[解决办法]
*p=&ch;// 2行
p为指向char型字符的指针,*p具体指的是一个char型字符。 而&ch为char型变量ch的地址
*p = &ch, 是将一个char*赋值给char类型的,所以会有那个error。
应该改成:
p = &ch;
[解决办法]
*p=&ch;// 2行
这儿*p已经是对指针的引用,即p指针指向的空间里存放的数据值,通过第一行,就可以知道*p引用的值是5
如果你这样赋值,数据类型就不匹配。