指针是一种数据类型,但是指针和指针也会有不同,这一点体现在指针的运算上,例如int a = 981,在内存中的十六进制表示为[d5 03 00 00],如果我们想通过memcpy取[03 00 00]这块的内容,仅仅使用&a+1是不对的,原因是a 是int 型,&a则是int型的指针,+1运算实际是往后移了4位,如果想往后移动一位,需要做类型转换,(unsinged char*)&a+1就可以了。
这点在使用memcpy的时候一定要注意!
指针是一种数据类型,但是指针和指针也会有不同,这一点体现在指针的运算上,例如int a = 981,在内存中的十六进制表示为[d5 03 00 00],如果我们想通过memcpy取[03 00 00]这块的内容,仅仅使用&a+1是不对的,原因是a 是int 型,&a则是int型的指针,+1运算实际是往后移了4位,如果想往后移动一位,需要做类型转换,(unsinged char*)&a+1就可以了。
这点在使用memcpy的时候一定要注意!