当前位置: 代码迷 >> C语言 >> 求助:strlen()问题
  详细解决方案

求助:strlen()问题

热度:457   发布时间:2007-10-26 15:15:09.0
求助:strlen()问题
#include <stdio.h>
#include <string.h>
main()
{
int i=1;
printf("%d",strlen(&i));
}

在Tc上运行,结果显示1,没错~
当把i=1改为i=257的时候,结果显示7;
但int在我机子的内存上只占四个字节,为什么显示7呢?
我预想的结果是2;
请大家给点提示,谢谢!!!
搜索更多相关的解决方案: strlen  

----------------解决方案--------------------------------------------------------
怎么没人回答哦
----------------解决方案--------------------------------------------------------
strlen不能这样用啊。。。
----------------解决方案--------------------------------------------------------

tc支持的 int是 2个字节把 ...不是4个字节.


----------------解决方案--------------------------------------------------------
回复:(succubus)strlen不能这样用啊。。。

嗯,tc中,int只支持两个字节


----------------解决方案--------------------------------------------------------
回复:(lonelyfree)怎么没人回答哦[em09]
今天我们老师讲了,strlen可以这样用,只要参数跟指针就行了。
strlen访问指针指向的地址,然后向下读,遇到'\0'结束,也就是遇到00000000结束。

----------------解决方案--------------------------------------------------------
以下是引用lonelyfree在2007-10-26 23:07:30的发言:
今天我们老师讲了,strlen可以这样用,只要参数跟指针就行了。
strlen访问指针指向的地址,然后向下读,遇到'\0'结束,也就是遇到00000000结束。

我当然知道
问题是这样用strlen得到的值有什么意义呢?


----------------解决方案--------------------------------------------------------
回复:(succubus)以下是引用lonelyfree在2007-10-26...

我只是想检验一下strlen是怎么样工作的,
可是我想的跟做出来的不一样。
我想知道问题出在哪里?


----------------解决方案--------------------------------------------------------
问题出在哪里见你自己回帖的6楼
想检验strlen是怎么工作的就请用字符串来验证
----------------解决方案--------------------------------------------------------

如果你想这么用也可以,而且你的答案是对的:
具体要看系统是大端与小端的问题,看看下面:http://bbs.bc-cn.net/viewthread.php?tid=179519&star=at#


----------------解决方案--------------------------------------------------------
  相关解决方案