| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 449 人关注过本帖
标题:[求助]能告訴我不什麼不同?
只看楼主 加入收藏
form521
Rank: 1
来 自:西安
等 级:新手上路
帖 子:162
专家分:4
注 册:2006-12-21
收藏
 问题点数:0 回复次数:4 
[求助]能告訴我不什麼不同?
printf("your name of %d letters occupies %d memory cells.\n",strlen(name),sizeof name);

輸出:your name of 6 letters occupies 40 memory cells.

兩個都是 name為什麼輸出結果不同? 還是和 strlen() ,sizeof 有關呢?假如是幫我講一下這兩個的區別!謝謝

2007-01-04 20:54
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

可以这么理解:strlen()求的是从形参的位置连续直到遇到第一个'\0'的字符个数。
sizeof()指的是name的实际长度,比如"abcd\0abcd"为10.后面还包含了一个'\0'.
需要注意的是:当sizeof()参数分别为数组和指针时,要分辨好参数表示的是一数组又或者是一指针。


对不礼貌的女生收钱......
2007-01-04 21:18
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
上面说得有点偏了,
简单点说,sizeof()计算的是参数所占的空间。

对不礼貌的女生收钱......
2007-01-04 21:23
form521
Rank: 1
来 自:西安
等 级:新手上路
帖 子:162
专家分:4
注 册:2006-12-21
收藏
得分:0 

謝謝了!


人生就是个死循环,退出这个循环的条件是系统停止。
2007-01-04 21:39
senyee
Rank: 1
等 级:新手上路
帖 子:422
专家分:0
注 册:2006-11-28
收藏
得分:0 


菜鸟~~请多指教~~
2007-01-04 22:48
快速回复:[求助]能告訴我不什麼不同?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020243 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved