黑马程序员技术交流社区

标题: 为什么不能char name = "舒克"? [打印本页]

作者: pangang    时间: 2015-4-17 09:34
标题: 为什么不能char name = "舒克"?
#include <stdio.h>
int main()
{
    char *name = "舒克";
    printf("%s\n",name);
    return 0;
}
为什么不能char name = "舒克"?
师兄师姐帮我理一下概念


作者: q594254132    时间: 2015-4-17 09:49
指针并不是真的可以存储字符串,而是存储了字符串首字母a的地址,其实每个字符串都是以'/0'为结束符,当用%s输出时,在输出前一个字符的同时指针会自动跳到下个字符的地址处,直到遇到'/0'停止,所以%s可以输出一个字符串.
作者: 一切为何    时间: 2015-4-17 09:54
char name="舒克"是命名字符串,不能用双引号
作者: dyb_10101    时间: 2015-4-17 10:34
char 是单字符类型变量,只能存单个字符,不能存字符串,要想存字符串,必须有char *name= “”。
作者: pangang    时间: 2015-4-17 10:40
q594254132 发表于 2015-4-17 09:49
指针并不是真的可以存储字符串,而是存储了字符串首字母a的地址,其实每个字符串都是以'/0'为结束符,当用%s ...

讲的非常清楚,我明白了
作者: q594254132    时间: 2015-4-17 10:46
pangang 发表于 2015-4-17 10:40
讲的非常清楚,我明白了

记住一点指针就是存储地址用的,你就明白很多了
作者: 和鹏    时间: 2015-4-17 11:00
你的name 不是个指针么?




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