Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C / C ++でポインタを比較する方法は?


同じ配列を指している場合は、ポインターを比較できます。リレーショナルポインタを使用して、2つのポインタを比較できます。ポインタを掛けたり割ったりすることはできません。

Cの場合

#include <stdio.h>
int main() {
   int *p2;
   int *p1;
   p2 = (int *)300;
   p1 = (int *)200;
   if(p1 > p2) {
      printf("P1 is greater than p2");
   } else {
      printf("P2 is greater than p1");
   }
   return(0);
}

出力

P2 is greater than p1

C++の場合

#include <iostream>
using namespace std;
int main() {
   int *p2;
   int *p1;
   p2 = (int *)300;
   p1 = (int *)200;
   if(p1>p2) {
      cout<<"P1 is greater than p2";
   } else {
      cout<<"P2 is greater than p1";
   }
   return(0);
}

出力

P2 is greater than p1

ポインタ比較に関するいくつかの重要なポイント-

  • 同じ型の2つのポインタp1とp2が同じオブジェクトまたは関数を指している場合、または両方が同じ配列、または両方ともnullです。

  • 同じタイプの2つのポインタp1とp2が、同じオブジェクトまたは同じ配列の要素のメンバーではない異なるオブジェクトを指している場合、または異なる関数、またはそれらの1つだけがnullの場合。

  • 2つのポインタが、同じオブジェクトの非静的データメンバー、または同じアクセス制御を持つそのようなメンバーのサブオブジェクトまたは配列要素を指している場合、結果が指定されます。

  • 2つのポインタが、アクセス制御が異なる同じオブジェクトの非静的データメンバーを指している場合、結果は指定されません。


  1. C / C ++文字列がintであるかどうかを確認するにはどうすればよいですか?

    文字列がintであるかどうかを確認する方法はいくつかあり、そのうちの1つは、isdigit()を使用して文字列を確認する方法です。 これは、文字列がC++言語でintであるかどうかを確認する例です。 例 #include<iostream> #include<string.h> using namespace std; int main() {    char str[] = "3257fg";    for (int i = 0; i < strlen(str); i++) {   &n

  2. C ++でfloatとdoubleを比較する方法は?

    float変数とdouble変数の比較は、最終目標が何であるかによって異なります。詳細をあまり説明せずに実行可能な関数が必要で、一部の不正確な計算で問題が発生しない場合は、次の関数を使用できます- 例 #include<iostream> using namespace std; // Define the error that you can tolerate #define EPSILON 0.000001 bool areSame(double a, double b) {    return fabs(a - b) < EPSILON; }