标题:[求助]能告訴我不什麼不同?
只看楼主
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-114252-1-1.html




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

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