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’。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP