ホームページ >よくある問題 >*p++ と (*p)++ の違いは何ですか

*p++ と (*p)++ の違いは何ですか

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌オリジナル
2023-05-23 11:48:198791ブラウズ

*p と (*p) の違いは次のとおりです: 1. *p は後置増分演算子の組み合わせであり、(*p) は *p 式に適用される後置増分演算子です。2. *p式は、最初に「p」が指す値を返し、次に「p」をインクリメントします。(*p) は、「p」が指す値を返し、その後、その値をインクリメントします。

*p++ と (*p)++ の違いは何ですか

# このチュートリアルのオペレーティング システム: Windows 10 システム、C18 バージョン、Dell G3 コンピューター。

#*p と (*p)

*p と (*p) の違いは、次の 2 つの異なる式です。

  1. *p: これは後置インクリメント演算子の組み合わせです。まず、*p 式はポインター p を逆参照し、ポインターが指す値を返します。次に、ポインタ p がインクリメントされ、次の要素を指します。したがって、この式は最初に p が指す値を返し、次に p をインクリメントします。

  2. (*p) : これは *p 式に適用される後置インクリメント演算子です。まず (*p) はポインタ p を逆参照し、ポインタが指す値を返します。その後、値がインクリメントされます。したがって、この式はまず p が指す値を返し、次にその値をインクリメントします。

この 2 つの違いを説明するサンプル コードを次に示します。

#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 です。これは 2 つの違いを示しています。

以上が*p++ と (*p)++ の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。