*p 和(*p) 的區別是:1、*p 是後綴遞增運算子的組合,(*p) 是一個後綴遞增運算子應用於*p表達式;2、*p表達式先傳回「p」指向的值,然後將「p」遞增,(*p) 傳回「p」指向的值,然後將該值遞增。
本教學作業系統:Windows10系統、C18版本、Dell G3電腦。
*p 和(*p) 的差異
*p 和(*p) 是兩個不同的表達式:
#*p : 這是一個後綴遞增運算子的組合。首先,*p表達式將解引用指標p並傳回指標指向的值。然後,指標p遞增,指向下一個元素。因此,這個表達式先傳回p指向的值,然後將p遞增。
(*p) : 這是一個後綴遞增運算子套用於*p表達式。首先(*p)解引用指標p並傳回指標指向的值。然後,該值遞增。因此,這個表達式首先傳回p指向的值,然後將該值遞增。
下面是一個範例程式碼,以說明兩者之間的差異:
#include <iostream> int main() { int arr[] = {1, 2, 3}; int* p = arr; std::cout << *p++ << std::endl; // 输出: 1 std::cout << *p << std::endl; // 输出: 2 p = arr; std::cout << (*p)++ << std::endl; // 输出: 1 std::cout << *p << std::endl; // 输出: 2 return 0; }
在上述範例中,*p 首先輸出p指向的值1,然後將p遞增到下一個元素,現在p指向2。而(*p) 先輸出p指向的值1,然後將該值遞增,現在p指向的值為2。這展示了兩者之間的差異。
以上是*p++和(*p)++有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!