在c語言中,假設p為一個整型指針,當執行p++時,p指針指向的地址並不是增加了1,而是增加了4。這個差異是因為在c語言標准中,加法與減法運算對於地址的操作和對於值的操作是不同的。 當一個加法運算,加號兩邊的操作數一個是指針,另一個是一個整數時,這個整數值先乘以指針指向的數據類型的大小(如sizeof(int)),然后再和指針的值相加。 當一個減法運算,減號左邊的操作數是一個指針,右邊的操作數是一個整數時,這個整數值先乘以指針指向的數據類型的大小(如sizeof(int)),然后再被指針的值減去。 當一個減法運算,減號兩邊的操作數都是地址時,則這兩個地址的數據類型必須一致(如都是int *類型),否則無法通過編譯。減法運算的結果為地址值的差,再除以該地址的數據類型的大小(如sizeof(int))。 ———————————————— 原文鏈接:https://blog.csdn.net/u011012049/article/details/48953615