将int型一维数组地址赋给char*型变量会发生什么,求大神解释为什么最后会打印出200三个数

2024-11-22 08:41:51
推荐回答(1个)
回答1:

因为int型一般是4字节,intel的cpu又是little endian,所以在内存当中,一个int型的2会从低到高地址占用4个字节存储2,0,0,0
那么当你用一个字符型指针指向这段地址的首地址时,字符型的长度是一个字符,所以你循环3次,就是取出前三个字节,也就是2,0,0
但是你又要求把取出的字符型以整型的方式输出,所以又得到了int型的2,0,0(注意,虽然还是2,0,0,但是和char型的宽度是不一样的)