ホームページ  >  記事  >  バックエンド開発  >  ポインター比較の規則と例外は?

ポインター比較の規則と例外は?

WBOY
WBOYオリジナル
2024-06-04 18:01:16426ブラウズ

C/C++ では、ポインターの比較規則は次のとおりです。同じオブジェクトを指すポインターは等しいです。異なるオブジェクトへのポインターは等しくありません。例外: null アドレスへのポインタが等しい。

ポインター比較の規則と例外は?

ポインター比較の規則と例外

C/C++ プログラミングでは、ポインターは他の変数のアドレスを格納できる特別な変数です。ポインター比較のルールを理解することは、ポインターの使用を習得するために重要です。

ルール:

  • 同じオブジェクトを指す 2 つのポインターは true (等しい) と比較されます。
  • 異なるオブジェクトを指す 2 つのポインターの比較は false (等しくありません) です。

例外:

  • 両方のポインターが空または null アドレスを指している場合、比較は true です。

実際の例:

次の C プログラムは、ポインター比較の規則と例外を示します:

#include <stdio.h>

int main() {
  int a = 10;
  int b = 20;
  int *ptr1 = &a;  // ptr1 指向 a
  int *ptr2 = &b;  // ptr2 指向 b
  int *nullPtr = NULL;  // 空指针

  // ptr1 和 ptr2 指向不同的对象
  if (ptr1 == ptr2) {
    printf("ptr1 和 ptr2 指向同一对象。\n");
  } else {
    printf("ptr1 和 ptr2 指向不同的对象。\n");
  }

  // ptr1 和 nullPtr 指向不同的对象
  if (ptr1 == nullPtr) {
    printf("ptr1 和 nullPtr 指向同一对象。\n");
  } else {
    printf("ptr1 和 nullPtr 指向不同的对象。\n");
  }

  // nullPtr 和 nullPtr 指向相同的空对象
  if (nullPtr == nullPtr) {
    printf("nullPtr 和 nullPtr 指向同一对象。\n");
  } else {
    printf("nullPtr 和 nullPtr 指向不同的对象。\n");
  }

  return 0;
}

出力:

🎜

以上がポインター比較の規則と例外は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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