cout<<int(*p)<<int(*(p+1))<<endl;
首先258的二进制数确实是这样的00000001 00000010
但是在内存中低八位是在前面高八位在后面(因为栈是又高地址像低地址生长的)
所以在内存中 258就是00000010 00000001
&i存的是低八位字节的地址也就是00000010 当你把它转化成字符类型也就是
一个字节的时候 就会把高八位切割掉
那么 00000010 也就是十进制的2
同理p+1也就指向了00000001内存单元那么这个显然是1
如果没有int(*p)<<int(*(p+1))那么输出来的将会是2和1所代表ASCII码字符
我输出来好像是两个笑脸 反正道理明白就行了