<xmp id="cusm8"><nav id="cusm8"></nav>
<tt id="cusm8"><tt id="cusm8"></tt></tt>
<menu id="cusm8"></menu>
  • <menu id="cusm8"><nav id="cusm8"></nav></menu>
    <xmp id="cusm8"><nav id="cusm8"></nav>
  • 企業網站托管

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

    【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,使之指向第二個元素。

    午夜43路_chinese青年大学生gay_欧美日韩免费观看在线影片_无码视频痴汉在线观看_被下春药强制高潮视频_征服高贵超短裙浪妇