求助: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可以这样用,只要参数跟指针就行了。
strlen访问指针指向的地址,然后向下读,遇到'\0'结束,也就是遇到00000000结束。
我当然知道
问题是这样用strlen得到的值有什么意义呢?
----------------解决方案--------------------------------------------------------
回复:(succubus)以下是引用lonelyfree在2007-10-26...
我只是想检验一下strlen是怎么样工作的,
可是我想的跟做出来的不一样。
我想知道问题出在哪里?
----------------解决方案--------------------------------------------------------
问题出在哪里见你自己回帖的6楼
想检验strlen是怎么工作的就请用字符串来验证
----------------解决方案--------------------------------------------------------
如果你想这么用也可以,而且你的答案是对的:
具体要看系统是大端与小端的问题,看看下面:http://bbs.bc-cn.net/viewthread.php?tid=179519&star=at#
----------------解决方案--------------------------------------------------------