はじめに
C言語では、ポインタ同士を、「より大きい」「より小さい」「等しい」などの関係演算子を使って比較することができます。この実験では、Cプログラミング言語でポインタを比較する方法を紹介し、同じ配列を指す同じ型および異なる型のポインタの例を示します。
C言語では、ポインタ同士を、「より大きい」「より小さい」「等しい」などの関係演算子を使って比較することができます。この実験では、Cプログラミング言語でポインタを比較する方法を紹介し、同じ配列を指す同じ型および異なる型のポインタの例を示します。
プログラムの要件に応じて、同じ型または異なる型の2つのポインタ変数を宣言します。この例では、ptrA
と ptrB
という名前の2つの整数型ポインタを宣言します。
int *ptrA, *ptrB;
次に、ポインタ宣言演算子 (*
) とアドレス演算子 (&
) を使用して、ポインタ変数にメモリアドレスを割り当てます。これは、これらの例で行ったように、キャストを使用しても行うことができます。
ptrA = (int *) 1;
ptrB = (int *) 2;
関係演算子のいずれかを使用して、2つのポインタ変数を比較します。この例では、「より大きい」演算子 (>
) を使用しています。条件が真であれば、if
ブロック内の文が出力されます。
if(ptrB > ptrA) {
printf("PtrB is greater than ptrA");
}
同じ配列を指す異なる型のポインタ変数に対して、手順1~3を繰り返します。この例では、整数型 (ptrA
) と浮動小数点型 (ptrB
) のポインタを宣言し、それらにメモリアドレスを割り当てます。
int *ptrA;
float *ptrB;
ptrA = (int *) 1000;
ptrB = (float *) 2000;
関係演算子を使用して2つのポインタを比較します。
if(ptrB > ptrA) {
printf("PtrB is greater than ptrA");
}
main.c
ファイルにコードを記述する~/project/
ディレクトリにある main.c
ファイルにプログラム全体を記述します。
#include <stdio.h>
int main() {
int *ptrA, *ptrB;
float *ptrC, *ptrD;
ptrA = (int *) 1;
ptrB = (int *) 2;
ptrC = (float *) 100;
ptrD = (float *) 200;
if (ptrB > ptrA) {
printf("ptrB is greater than ptrA\n");
}
if (ptrD > ptrC) {
printf("ptrD is greater than ptrC\n");
}
return 0;
}
GCC などの C コンパイラを使用してプログラムをコンパイルし、プログラムを実行してポインタ比較をテストします。
C プログラミングでは、関係演算子を使用してポインタ同士を比較することができます。この実験の例では、同じ配列を指す同じ型および異なる型のポインタを比較する方法を示しています。ポインタを比較する際には、正確な結果を得るために、同じ配列を指していることを確認してください。