指针运算不同于算数运算,不能简单加减
生活随笔
收集整理的這篇文章主要介紹了
指针运算不同于算数运算,不能简单加减
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?????必須注意,指針運算不同于常規的算術運算,一般地,40000+2的結果是40002,但當一個指針加上或減去一個整數時,指針并非簡單地加上或減去該整數值,而是加上該整數與指針引用對象大小的乘積,而對象的大小則和機器與對象的數據類型有關。例如在上述情況下,語句
| ptra+=2; |
的結果是40000+4*2=40008, ptra也隨之指向元素a[2],同理,諸如語句
| ptra-=2; ptra++; ++ptra; ptra--; ptra--; |
等的運算原理也都與此相同,至于指針與指針相減,則會得到在兩個地址之間所包含的數組元素的個數,例如ptra1包含存儲單元40008,ptra2包含存儲單元40000,那么語句
| x = ptra1 - ptra2; |
得到的結果就是2(仍假設整數在內存中占4個字節)。因為除了數組元素外,我們不能認為兩個相同類型的變量是在內存中連續存儲的,所以指針算數運算除了用于數組外沒有什么意義。
轉載于:https://www.cnblogs.com/lihongsheng0217/archive/2009/03/11/1408951.html
總結
以上是生活随笔為你收集整理的指针运算不同于算数运算,不能简单加减的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea报错:Error: java:
- 下一篇: 用spring搭建微信公众号开发者模式下