你要想得到2的结果就用int占四字节的编译器吧
比如VC
比如VC
[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
如果你想这么用也可以,而且你的答案是对的:
具体要看系统是大端与小端的问题,看看下面:http://bbs.bc-cn.net/viewthread.php?tid=179519&star=at#
关键是tc的int是两字节,所以出错
就相当于下面这段代码一样
char country[5]={'c','h','i','n','a'};
strlen(country);
[此贴子已经被作者于2007-10-26 23:31:21编辑过]
谢谢你的提示,我先没有检验大小端的影响。
我刚才又试了一下:
#include <stdio.h>
main()
{
int i[2]={257,0};
printf("%d",strlen(i));
}
这里输出是2
#include <stdio.h>
main()
{
int i=257;
printf("%d",strlen(&i));
}
这里输出是7
是不是第二段代码i=257,257两个字节后面的5个字节内存里有其他数据呢?
谢谢你的提示,我先没有检验大小端的影响。
我刚才又试了一下:
#include <stdio.h>
main()
{
int i[2]={257,0};
printf("%d",strlen(i));
}
这里输出是2
#include <stdio.h>
main()
{
int i=257;
printf("%d",strlen(&i));
}
这里输出是7
是不是第二段代码i=257,257两个字节后面的5个字节内存里有其他数据呢?
you got it!