教你理解下C语⾔数组指针偏移量
有些刚学习C语⾔的⼈对于数组的指针偏移量⾮常的困惑,对于各种不同情况下得+1 +1 蒙圈今天翻了下以前总结,重新写⼀篇博⽂
⾸先假设⼀个数组元素为int类型的⼀维数组叫做arr[4],arr的地址为0x00.
arr是这个数组⾸元素地址==&arr[0], ⼼得就是 ⽆论&什么什么+1 就是&符号后⾯的内容占据的地址单元数+指针起始位置 arr[0]占据4地址单元
所以arr +1 == &arr[0]+1 =4+0x00=0x04; ⽽ &arr+1 = 0x10; 这⾥&后⾯arr是个数组名就可以当成是arr这整个数组占据的地址单元数+地址.它占据16个地址单元 &arr+ 1=16+ 0x00= 0x10.⼀维数组中各元素也是如此,arr[0]+1等于 arr[1]同样适⽤,arr[0]是int 类型在内存中占⽤四个字节,所以+1也是跳到第5个字节就是arr[1]的字节那⼉,所以就是arr[1]了
指针与二维数组⼆维数组指针也是⼀样的,希望以后这些东西不会困扰你

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。