黑马程序员技术交流社区

标题: 关于字符串指针的问题 [打印本页]

作者: Never_Yg    时间: 2015-5-26 17:25
标题: 关于字符串指针的问题
如题:先定义一个字符串指针,char *str = "abc';
        我的理解是常量字符串把首地址赋值给了指针变量str
        这里str代表一个地址
       打印str:  printf(“%s\n",str);
       为什么不是  printf("%s\n",*str);
      str只是个地址,打印的时候不是应该用*str取值打印吗?
作者: Residual_mem    时间: 2015-5-26 17:39
C中。。定义字符串的时候可以这样定义。。不过*str指的是字符串中第一个字符。。
打印的时候输入地址可以打印。。
作者: yuang4074    时间: 2015-5-26 18:40
你说的有道理,但是你要明白 *str 不是字符串了 不能用%s来输出 *str相当于str[0],是一个字符 应该用%c输出
作者: hui1107464497    时间: 2015-5-26 18:58
我认为  char * 这个是数据类型,*标志着str变量是一个指针类型的变量,取值就用str取
作者: Never_Yg    时间: 2015-5-26 19:08
yuang4074 发表于 2015-5-26 18:40
你说的有道理,但是你要明白 *str 不是字符串了 不能用%s来输出 *str相当于str[0],是一个字符 应该用%c输出 ...

谢谢,*str我明白了!那printf("%s\n"str);为什么能打印字符串呢?
作者: Never_Yg    时间: 2015-5-26 19:09
yuang4074 发表于 2015-5-26 18:40
你说的有道理,但是你要明白 *str 不是字符串了 不能用%s来输出 *str相当于str[0],是一个字符 应该用%c输出 ...

传入首地址就能打印这个字符串?这样理解对吗
作者: yuang4074    时间: 2015-5-27 09:02
Never_Yg 发表于 2015-5-26 19:08
谢谢,*str我明白了!那printf("%s\n"str);为什么能打印字符串呢?

可以,但是目测,你少了个逗号。记住,写程序要自己在平台多测试。
作者: yuang4074    时间: 2015-5-27 09:04
Never_Yg 发表于 2015-5-26 19:09
传入首地址就能打印这个字符串?这样理解对吗

嗯 不过输出方式是%s




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