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

chywcp 2012-11-29 10:16:56
#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”,为什么呢?

请指点!
...全文
1123 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SKATE11 2012-11-29
  • 打赏
  • 举报
回复
*p &ch 类型不匹配
自信男孩 2012-11-29
  • 打赏
  • 举报
回复
*p=&ch;// 2行 这儿*p已经是对指针的引用,即p指针指向的空间里存放的数据值,通过第一行,就可以知道*p引用的值是5 如果你这样赋值,数据类型就不匹配。
breakfisher 2012-11-29
  • 打赏
  • 举报
回复
*p=&ch;// 2行 p为指向char型字符的指针,*p具体指的是一个char型字符。 而&ch为char型变量ch的地址 *p = &ch, 是将一个char*赋值给char类型的,所以会有那个error。 应该改成: p = &ch;
lilianjie001 2012-11-29
  • 打赏
  • 举报
回复
应该为p=&ch;// 2行 楼主没搞明白指针

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧