A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

wuyu1992

初级黑马

  • 黑马币:19

  • 帖子:12

  • 精华:0

© wuyu1992 初级黑马   /  2015-5-17 17:19  /  1406 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>

int main()
{
char *name;

scanf("%s", name);

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

return 0;
}
这个C语言函数可以输出字符串么? 为什么?  求大神解答

15 个回复

倒序浏览
可以啊, 为什么不能输出哇?
回复 使用道具 举报
自己试试不就知道啦!
回复 使用道具 举报
动手试一下,解百毒,加个换行或空格就更好了.
回复 使用道具 举报
这是一个野指针不安全,
比如定义如下:
char *p;
这个时候系统并没有给它分配内存,它只是有一个存放地址的地方,但是这个地方是没有预期的,可以理解是野指针,可能指向其它人的地址内存中.
所以我们一般定义变量是,一定要给它赋个初值,比如: char *p = NULL;这样就比较安全了.
有些东西知道它怎么使用就好了,更深入的东西知道了并不一定是好事.
回复 使用道具 举报
试试就可以   如果电脑没C语言软件就下一个  试试就知道了
回复 使用道具 举报
为什么要定义个指针啊
回复 使用道具 举报
走一个就知道
回复 使用道具 举报
chensc 金牌黑马 2015-5-18 19:03:51
9#
学习学习!
回复 使用道具 举报
mony 中级黑马 2015-5-18 19:12:07
10#
卖报的小画家 发表于 2015-5-18 00:00
为什么要定义个指针啊

因为C语言里没有字符串类型,所以用字符数组存放字符串。定义可以是用字符数组,或者字符类型的指针
回复 使用道具 举报
自己运行一下就知道了!
回复 使用道具 举报
装个C语言自己论证吧
回复 使用道具 举报
受教育了.野指针,不安全,这些还不懂
回复 使用道具 举报
他的名字是:  (在scanf 函数输入啥,就输出啥)
回复 使用道具 举报
不仅仅是野指针的问题.
保存字符串:
可以定义一个较大的数组,程序自动分配内存,可以保存字符串
如果用指针,就需要手动分配内存,然后保存字符串
如果不分配内存,程序可能没有问题(运气),但也可能会崩溃.
回复 使用道具 举报
学习学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马