c语言数组输出问题,整数强转

img


这里a的输出为啥不是字符串而是a0位置的字符,是因为数组没有\0吗。我加上好像输出还是位置0的字符而不是字符串

可以用uint8_t声明数组。
用int肯定不行。
ascii码应该是0-128吧。

因为数组a为int类型,a[0]=50,在windows系统中,多字节数据存储是低字节在前,高字节在后,所以实际int值为50的存储顺序是:
32 00 00 00 (这是16进制,0x32就是50),这样在强制转换为char指针后,用%s是按字符串输出。遇到第二个字节00就结束了。因此实际只输出第一个字节数据。0x32对应的字符就是'2',所以输出了数字字符2

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^