ホームページ > バックエンド開発 > C++ > C の `ptr `、` ptr`、` *ptr`、および `(*ptr) ` の違いは何ですか?

C の `ptr `、` ptr`、` *ptr`、および `(*ptr) ` の違いは何ですか?

Susan Sarandon
リリース: 2024-12-20 03:52:13
オリジナル
457 人が閲覧しました

What's the Difference Between `ptr  `, `  ptr`, `  *ptr`, and `(*ptr)  ` in C  ?

ポインター: ptr 、 ptr、および *ptr

これらのポインター式は混乱を招くことが多いため、明確にしましょう。意味:

1. *ptr :

  • ポインタ ptr を逆参照し、指す値を返します。
  • 次の要素を指すようにポインタ ptr をインクリメントします。

例:

int arr[] = {1, 2, 3};
int *ptr = arr;
cout << *ptr++; // Outputs 1 and then points to the next element (2)
ログイン後にコピー

2. * ptr:

  • 最初にポインタ ptr をインクリメントし、次の要素に移動します。
  • その後、更新されたポインタを更新し、指す値を返します。

例:

int arr[] = {1, 2, 3};
int *ptr = arr;
cout << *++ptr; // Moves the pointer to the next element and outputs 2
ログイン後にコピー

3. *ptr:

  • ポインター ptr を逆参照し、指す値を返します。
  • その後、逆参照された値をインクリメントします。

注意: ポインタではなく値をインクリメントしますptr.

例:

int *ptr = new int(5); // Points to a dynamically allocated integer
cout << ++*ptr; // Outputs 6 and updates the dereferenced integer to 6
ログイン後にコピー

4.ボーナス: (*ptr) :

  • ptr の逆参照を強制し、ポイント先の値を取得します。
  • 逆参照された値をインクリメントします。

注意: *ptr と同様に、影響を及ぼします。ポインター自体ではなく、値です。

例:

int *ptr = new int(5);
cout << (*ptr)++; // Outputs 5 and updates the dereferenced integer to 6
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート