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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Never_Yg 中级黑马   /  2015-5-26 17:25  /  894 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如题:先定义一个字符串指针,char *str = "abc';
        我的理解是常量字符串把首地址赋值给了指针变量str
        这里str代表一个地址
       打印str:  printf(“%s\n",str);
       为什么不是  printf("%s\n",*str);
      str只是个地址,打印的时候不是应该用*str取值打印吗?

7 个回复

倒序浏览
C中。。定义字符串的时候可以这样定义。。不过*str指的是字符串中第一个字符。。
打印的时候输入地址可以打印。。
回复 使用道具 举报
你说的有道理,但是你要明白 *str 不是字符串了 不能用%s来输出 *str相当于str[0],是一个字符 应该用%c输出
回复 使用道具 举报
我认为  char * 这个是数据类型,*标志着str变量是一个指针类型的变量,取值就用str取
回复 使用道具 举报
yuang4074 发表于 2015-5-26 18:40
你说的有道理,但是你要明白 *str 不是字符串了 不能用%s来输出 *str相当于str[0],是一个字符 应该用%c输出 ...

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

传入首地址就能打印这个字符串?这样理解对吗
回复 使用道具 举报
Never_Yg 发表于 2015-5-26 19:08
谢谢,*str我明白了!那printf("%s\n"str);为什么能打印字符串呢?

可以,但是目测,你少了个逗号。记住,写程序要自己在平台多测试。
回复 使用道具 举报
Never_Yg 发表于 2015-5-26 19:09
传入首地址就能打印这个字符串?这样理解对吗

嗯 不过输出方式是%s
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马