使用字符串变量前,最好能手动初始化一下memset(src, '' ,sizeof(src));你src[2] = '\0' 与 src[2] = 0的结果是一样的,而src[2] = '0' 则与 src[2] = 48的结果是一样的.在ASCII码中数值0就是控制符\0,表示字符串结束的意思如果你要将src作为一个字符串使用,则必须赋一个结束符,因为我们的绝大部分的函数使用的时候判断长度都是与strlen相同的,一直会找到\0才认为这个字符串结束.没有赋结束符会导致这个字符串的长度超过预期的长度.不赋结束符也是一样的话,有可能是编译器默认进行了一次初始化,也有可能是当时那个内存的值刚好是\0;事实上我们不能总依靠编译器自身的功能,而应该自己手动去初始化或者赋结束符. |