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