c语言中为什么char *a;

c语言中为什么char*a;scanf("%s",a);是错的啊,一定要定义数组chara[10];吗?不是可以这样定义的吗,char*a="helloworld";那为... c语言中为什么
char *a;
scanf("%s",a);是错的啊,
一定要定义数组char a[10];吗?
不是可以这样定义的吗,char *a="hello world";
那为什么最上面的是错的啊,求大虾告知,小弟初学c语言
展开
 我来答
xiefeng143
2013-09-13 · TA获得超过101个赞
知道小有建树答主
回答量:61
采纳率:0%
帮助的人:70万
展开全部
char *a只是定义了一个指针,a并没有指向实际的地址空间
应该在scanf("%s",a);之前加一段为a分配地址空间的程序

a=malloc(100);为a分配100个字袭手并节的空间。所有最终程序应薯姿该为

char *a;
a=malloc(100);
scanf("%s"拍迹,a);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上官萧敬
2013-09-13 · TA获得超过1048个赞
知道小有建树答主
回答量:760
采纳率:0%
帮助的人:789万
展开全部
char *a是指a的地址,不是a的值如族。
C语言中*p代表指针。
地址是不册仿可以直渣姿弊接赋值的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云帆00沧海
2013-09-13 · 超过15用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:29.3万
展开全部
char *a;//声明a是char *类脊樱型,但没有分配液野迟存闹李储空间,要使用就要用malloc分配动态内存
char *a = “hello world”;//存放在只读数据段中
char a[10];//分配10个char的空间,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天降辕石
2013-09-13 · 超过26用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:38万
展开全部
char *a,是一个指向char类型的指针,里陵毕中边只能存放指向char类型的指针,
"%s",是指向字尺山符串的。最关键的你没有初始化数轿,这是个野指针,没有指定是很危险的啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
跳舞的樱桃
2013-09-13
知道答主
回答量:30
采纳率:0%
帮助的人:19.2万
展开全部
这样很容易崩溃,a没初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式