首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

没法从“char *”转换为“char”

2013-01-04 
无法从“char *”转换为“char”#include stdio.hchar chchar *pint main(void){char ch5char *px&ch/

无法从“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
如果你这样赋值,数据类型就不匹配。

热点排行