指针高级2-指针的运算2

1. 有意义的操作

①、指针跟整数进行+、-操作(每次移动N个步长)

注意事项:在进行指针+、-操作时,需要注意运算优先级,即我们要在指针完成移动之后,再进行解引用。比如:

printf(“%d\n”,*(p1 + 1));

②、指针跟指针进行-操作,可以算出两个指针的间隔步长。

注意事项:这里计算出的结果是16进制表示的,需要转成10进制进行验证。

p2 – p1为20字节的原因:
在上面p1指针记录的是数组0索引的地址值:

p2指针记录的是数组5索引的地址值:

两个指针所记录的地址值,在数组arr中相差5个步长,由于arr是int类型,所以最后的间隔步长结果就为,5(0和5在索引中的间距,即5-0) * 4(int类型的字节大小)= 20(间隔步长)

2. 无意义的操作

①、指针跟整数进行乘除操作会导致指针的指向不明。

②、指针和指针进行加、乘、除操作,同样也会导致指向不明。

这就好比你家的狗明明只走3公里路能到家,但实际你的狗走了3公里以上的路程,导致你的狗走过了自己的家,然后迷路了……

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇