Cポインタの加算と減算の例を考えます
ポインタには多くの簡単な概念があり、Cプログラミングにとって非常に重要です。
算術ポインタの概念の2つを以下に説明します。それぞれCポインタの加算と減算です。
Cポインタの追加
Cポインターの追加とは、ポインター変数に値を追加することです。
式は次のとおりです-
new_address= current_address + (number * size_of(data type))
例
以下はCポインタ加算用のCプログラムです-
#include<stdio.h> int main(){ int num=500; int *ptr;//pointer to int ptr=#//stores the address of number variable printf("add of ptr is %u \n",ptr); ptr=ptr+7; //adding 7 to pointer variable printf("after adding add of ptr is %u \n",ptr); return 0; }
出力
上記のプログラムを実行すると、次の結果が得られます-
add of ptr is 6422036 after adding add of ptr is 6422064
Cポインタの減算
ポインタ変数から値を減算します。ポインタ変数から任意の数値を引くと、アドレスが得られます。
式は次のとおりです-
new_address= current_address - (number * size_of(data type))
例
以下は、Cポインタ減算用のCプログラムです-
#include<stdio.h> int main(){ int num=500; int *ptr;//pointer to int ptr=#//stores the address of number variable printf("addr of ptr is %u \n",ptr); ptr=ptr-5; //subtract 5 to pointer variable printf("after sub Addr of ptr is %u \n",ptr); return 0; }
出力
上記のプログラムを実行すると、次の結果が得られます-
addr of ptr is 6422036 after sub Addr of ptr is 6422016
-
Cプログラミングにおけるポインターの配列とポインターからポインターへの概念を説明する
ポインタの配列 他のデータ型と同様に、ポインタ配列を宣言することもできます。 宣言 datatype *pointername [size]; たとえば、int * p [5]; //5つの整数要素アドレスを保持できるポインタの配列を表します 初期化 「&」は初期化に使用されます たとえば、 int a[3] = {10,20,30}; int *p[3], i; for (i=0; i<3; i++) (or) for (i=0; i<3,i++) p[i] = &a[i]; p[i] = a+i; アクセス アクセスには間接演算子(*)を使用します。
-
例を使用して、Cの揮発性および制限型修飾子を説明します
型修飾子は、Cプログラミング言語の既存のデータ型に特別な属性を追加します。 C言語には3つの型修飾子があり、揮発性および制限型の修飾子については以下で説明します- 揮発性 揮発性型修飾子は、変数が共有されていることをコンパイラーに通知するために使用されます。つまり、変数が揮発性として宣言されている場合、変数は他のプログラム(または)エンティティによって参照および変更される可能性があります。 たとえば、volatile int x; 制限 これは、ポインターでのみ使用されます。これは、ポインタが差分データにアクセスするための最初の方法にすぎないことを示しています。最適化のためにコ