<ruby id="5hvrh"><ins id="5hvrh"></ins></ruby><ruby id="5hvrh"></ruby>
<strike id="5hvrh"></strike>
<th id="5hvrh"></th>
<span id="5hvrh"><noframes id="5hvrh">
<th id="5hvrh"></th><strike id="5hvrh"><video id="5hvrh"></video></strike><span id="5hvrh"></span>
<strike id="5hvrh"><noframes id="5hvrh"> <strike id="5hvrh"><noframes id="5hvrh"><span id="5hvrh"></span><th id="5hvrh"></th>
<strike id="5hvrh"><noframes id="5hvrh"><th id="5hvrh"></th><span id="5hvrh"><video id="5hvrh"></video></span><strike id="5hvrh"><noframes id="5hvrh">

企業網站托管

企業門戶的基礎配置,多端適配,完美展示企業信息

【C++】遞增遞減操作符與指針的關系

文章出處:本站原創 | 發表時間:2021-01-31 23:51:02

可以將遞增與遞減操作符用于指針和基本變量,將遞增操作符用于指針時,將把指針的值增加其指向的數據類型占用的字節數,這種規則適用于對指針遞增和遞減。

int arr[5] = {21,32,23,45,37};

int *pt = arr; //這里的pt指向數組第一個值,即arr[0]的位置

++pt;//pt向前移動一位,指向了arr[1]的位置

也可以結合使用這些操作符和*操作符來修改指針指向的值。將*和++同時用于指針時提出了這樣的問題,將什么解除引用,將什么遞增。這取決于操作位置和優先級。前綴遞增、前綴遞減和解除引用操作符的優先級是相同的,以從右到左的方式依次進行結合。后綴遞增、后綴遞減的優先級是相同的,但它們比前綴操作符的優先級高,這兩個操作符以從左到右的方式進行結合。

前綴操作符的從右到左結合規則意味著*++pt的含義如下:現將++應用于pt,因為++位于*的右邊,然后將*應用于被遞增后的pt。

另一方面,++*pt意味著先取得pt指向的值,然后將這個值加1。

在這種情況下,pt仍然指向array[2]。接著請看下面的組合:

(*pt)++;

圓括號指出,首先對指針解除引用,得到24,然后,操作符++將這個值遞增到25,pt仍然指向25。最后,再看看下面的組合:

*pt++;

后綴操作符++的優先級更高,這意味著將操作符用于pt,而不是*pt,因此對指針遞增。然而呢,后綴操作符意味著將對原來的地址(&array[2])而不是遞增后的新地址解除引用,因此,*pt++的值應為array[2],即25,但該語句執行完畢后,pt的值將為array[3]的地址。

指針遞增和遞減遵循指針算術規則,因此,如果pt指向某個數組的第一個元素,++pt將修改pt,使之指向第二個元素。

鲁丝片一区鲁丝片二区鲁丝片三区
<ruby id="5hvrh"><ins id="5hvrh"></ins></ruby><ruby id="5hvrh"></ruby>
<strike id="5hvrh"></strike>
<th id="5hvrh"></th>
<span id="5hvrh"><noframes id="5hvrh">
<th id="5hvrh"></th><strike id="5hvrh"><video id="5hvrh"></video></strike><span id="5hvrh"></span>
<strike id="5hvrh"><noframes id="5hvrh"> <strike id="5hvrh"><noframes id="5hvrh"><span id="5hvrh"></span><th id="5hvrh"></th>
<strike id="5hvrh"><noframes id="5hvrh"><th id="5hvrh"></th><span id="5hvrh"><video id="5hvrh"></video></span><strike id="5hvrh"><noframes id="5hvrh">