简单的指针问题(新手求学之路)

Sup_lz 2018-01-30 08:59:23
为什么这样赋值可以

#include <stdio.h>

int main()
{
char *p = "hello";

return 0;
}

像下面这样就不行了呢?
#include <stdio.h>

int main()
{
char *p;
*p = "hello";

return 0;
}

*p本来就是指针p所指向的值 为什么不可以直接给*p赋值呢?
如:int *p = 9;
...全文
289 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pripara 2018-02-05
  • 打赏
  • 举报
回复
字符串字面值是首字母的地址
paschen 2018-01-30
  • 打赏
  • 举报
回复
*p的类型是字符,*p只表示一个字符,而不是字符串,所以不能这样赋值,只能写成:*p = ‘h’;
Sup_lz 2018-01-30
  • 打赏
  • 举报
回复

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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