求助: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;
请大家给点提示,谢谢!!!
谢谢你的提示,我先没有检验大小端的影响。
我刚才又试了一下:
#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个字节内存里有其他数据呢?