关于指针的强制类型转换
2020-11-04 本文已影响0人
Fight_ing
img11.jpg
将指针从一种类型强制转换成另一种类型,只改变他的类型,而不改变他的值。
强制类型转换的一个效果是改变指针运算的伸缩。
例如:
如果p是个char *类型的指针,他的值为P,那么表达式
(int *)p + 7 = P + 28
因为int占4字节,而char只占1字节
而:
(int *)(p + 7) = P + 7
因为,强制类型转换的优先级高于加法。
PS:
指针+i,表示加i个单元格,即加i * sizeof(指针本身去掉一个*)
的字节:
(int *)p + 7 = P + 7 * sizeof(int) = P + 28