关于c字符串的困惑

代码如下:
char* str = "std";
puts(str);
以前老觉得,既然c里面关于字符串的机制是:字符数组,且数组名便是数组起始地址的指针名。那么如果我
puts(*str);
应该输出一个s字符才对。试了很多次都不对,今天猛然发现是我错了,错在用错了函数
putchar(*str);
会如我所想。所以,有时候,我们会按照自己的意愿去关注一个问题的一个方面,但是问题却得
不到解决这是因为我们一开始不经意就自己加了一些自认为正确但是错误的限定条件,puts就是
用来输出字符串的,你给他一个字符它肯定不买你的帐。

posted on 2012-01-03 17:18 ewre 阅读(198) 评论(2)  编辑 收藏 引用

评论

# re: 关于c字符串的困惑 2012-01-03 19:59 fuwei

puts是输出字符串,但是也能输出单个字符,你把*str转一下格式,如下:
char* str = "std";
puts((char*)*str);
是能通过的,但是结果不对,因为*str是一个字符,转成地址就不知道指向哪了。
没办法,puts这个函数的参数就是要指针,*str不是指针.......  回复  更多评论   

# re: 关于c字符串的困惑 2012-01-04 10:17 ewre

@fuwei
有道理,请多指教。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2012年1月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

留言簿(2)

文章分类

文章档案

最新评论

阅读排行榜