不一定是2吧,可能是2,也可能是0,看字节顺序,由CPU决定的。
i=(1001)10=(0000 0000 0000 0000 0000 0011 1110 1001)2
如果是大头(big endian),则i在内存的二进制存储为0000 0000 0000 0000 0000 0011 1110 1001,此时strlen(buf)==0,因为buf第一个字节为0,也就是字符串结束。
如果是小头(little endian),则i在内存的二进制存储为0000 0011 1110 1001 0000 0000 0000 0000,明显,strlen(buf)==2。