c語言中地址加法與減法


在c語言中,假設p為一個整型指針,當執行p++時,p指針指向的地址並不是增加了1,而是增加了4。這個差異是因為在c語言標准中,加法與減法運算對於地址的操作和對於值的操作是不同的。

當一個加法運算,加號兩邊的操作數一個是指針,另一個是一個整數時,這個整數值先乘以指針指向的數據類型的大小(如sizeof(int)),然后再和指針的值相加。

當一個減法運算,減號左邊的操作數是一個指針,右邊的操作數是一個整數時,這個整數值先乘以指針指向的數據類型的大小(如sizeof(int)),然后再被指針的值減去。

當一個減法運算,減號兩邊的操作數都是地址時,則這兩個地址的數據類型必須一致(如都是int *類型),否則無法通過編譯。減法運算的結果為地址值的差,再除以該地址的數據類型的大小(如sizeof(int))。
————————————————

原文鏈接:https://blog.csdn.net/u011012049/article/details/48953615

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM