C++ 中 ++*p、*p++ 和 *++p 的區別


在本節中,我們將瞭解 C++ 中 *ptr++、++*ptr 和 *++ptr 之間的區別。

在這裡,我們將看到 C 或 C++ 中字尾 ++ 和字首 ++ 的優先順序。字首 ++ 或 -- 的優先順序高於解引用運算子 ‘*’,字尾 ++ 或 -- 的優先順序高於字首 ++ 和解引用運算子 ‘*’。

當 ptr 是一個指標時,*ptr++ 表示 *(ptr++),++*ptr 表示 ++(*ptr)。

示例程式碼

 線上演示

#include<iostream>
using namespace std;
int main() {
   char arr[] = "Hello World";
   char *ptr = arr;
   ++*ptr;
   cout << *ptr;
   return 0;
}

輸出

I

因此,首先 ptr 指向 ‘H’。使用 ++*ptr 後,它將 H 增加 1,現在的值為 ‘I’。

示例程式碼 (C++)

#include<iostream>
using namespace std;
int main() {
   char arr[] = "Hello World";
   char *ptr = arr;
   *ptr++;
   cout << *ptr;
   return 0;
}

輸出

e

因此,首先 ptr 指向 ‘H’。使用 *ptr++ 後,它會使指標增加,所以 ptr 將指向下一個元素。因此結果是 ‘e’。

示例程式碼 (C++)

 線上演示

#include<iostream>
using namespace std;
int main() {
   char arr[] = "Hello World";
   char *ptr = arr;
   *++ptr;
   cout << *ptr;
   return 0;
}

輸出

e

在這個例子中,我們也使用 ++ 來增加 ptr,其中前增量 ++ 的優先順序更高,所以它首先增加指標,然後使用 * 獲取值。所以它列印的是 ‘e’。

更新於:2019年7月30日

1K+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.