黑马程序员技术交流社区

标题: C语言问题 [打印本页]

作者: wuyu1992    时间: 2015-5-17 17:19
标题: C语言问题
#include <stdio.h>

int main()
{
char *name;

scanf("%s", name);

printf("他的名字是:%s", name);

return 0;
}
这个C语言函数可以输出字符串么? 为什么?  求大神解答
作者: cui0wei0    时间: 2015-5-17 17:25
可以啊, 为什么不能输出哇?
作者: yi95392    时间: 2015-5-17 17:43
自己试试不就知道啦!
作者: fixer    时间: 2015-5-17 18:02
动手试一下,解百毒,加个换行或空格就更好了.
作者: aSmallStone    时间: 2015-5-17 22:35
这是一个野指针不安全,
比如定义如下:
char *p;
这个时候系统并没有给它分配内存,它只是有一个存放地址的地方,但是这个地方是没有预期的,可以理解是野指针,可能指向其它人的地址内存中.
所以我们一般定义变量是,一定要给它赋个初值,比如: char *p = NULL;这样就比较安全了.
有些东西知道它怎么使用就好了,更深入的东西知道了并不一定是好事.
作者: kakade    时间: 2015-5-17 23:47
试试就可以   如果电脑没C语言软件就下一个  试试就知道了
作者: 卖报的小画家    时间: 2015-5-18 00:00
为什么要定义个指针啊
作者: wangguanyang    时间: 2015-5-18 07:23
走一个就知道
作者: mony    时间: 2015-5-18 19:12
卖报的小画家 发表于 2015-5-18 00:00
为什么要定义个指针啊

因为C语言里没有字符串类型,所以用字符数组存放字符串。定义可以是用字符数组,或者字符类型的指针
作者: lyricdon    时间: 2015-5-18 21:04
自己运行一下就知道了!
作者: huanleabcd    时间: 2015-5-18 21:17
装个C语言自己论证吧
作者: 等风继续吹    时间: 2015-5-18 21:19
受教育了.野指针,不安全,这些还不懂
作者: zhangshuai    时间: 2015-5-23 17:34
他的名字是:  (在scanf 函数输入啥,就输出啥)
作者: yi95392    时间: 2015-5-23 22:40
不仅仅是野指针的问题.
保存字符串:
可以定义一个较大的数组,程序自动分配内存,可以保存字符串
如果用指针,就需要手动分配内存,然后保存字符串
如果不分配内存,程序可能没有问题(运气),但也可能会崩溃.





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2