C言語のポインタを使用して配列要素の合計を計算するにはどうすればよいですか?
ポインタは、他の変数のアドレスを格納する変数です。
次のステートメントを検討してください-
int qty = 179;
ポインタの宣言
ポインタを宣言するための構文は次のとおりです-
int *p;
ここで、「p」は他の変数のアドレスを保持するポインタ変数です。
ポインタの初期化
アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。
たとえば、
int qty = 175; int *p; p= &qty;
ポインタの配列
これは、アドレスのコレクション(または)ポインターのコレクションです。
宣言
以下は、ポインタの配列の宣言です-
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; アクセス
アクセスには間接演算子(*)を使用します。
たとえば、
for (i=0, i<3; i++)
printf ("%d", *p[i]); プログラム
以下は、ポインタを使用して配列要素の合計を計算するCプログラムです-
//sum of array elements using pointers
#include <stdio.h>
#include <malloc.h>
void main(){
int i, n, sum = 0;
int *ptr;
printf("Enter size of array : \n");
scanf("%d", &n);
ptr = (int *) malloc(n * sizeof(int));
printf("Enter elements in the List \n");
for (i = 0; i < n; i++){
scanf("%d", ptr + i);
}
//calculate sum of elements
for (i = 0; i < n; i++){
sum = sum + *(ptr + i);
}
printf("Sum of all elements in an array is = %d\n", sum);
return 0;
} 出力
上記のプログラムを実行すると、次の結果が得られます-
Enter size of array: 5 Enter elements in the List 12 13 14 15 16 Sum of all elements in an array is = 70
-
Cプログラミング言語でのポインタの配列を説明する
ポインタは、別の変数のアドレスを格納する変数です。 機能 ポインタはメモリスペースを節約します。 メモリ位置に直接アクセスできるため、ポインタの実行時間が短縮されます。 ポインタを使用すると、メモリに効率的にアクセスできます。つまり、メモリは動的に割り当てられ、割り当てが解除されます。 ポインタはデータ構造で使用されます。 ポインタの宣言と初期化 次のステートメントを検討してください- int qty = 179; メモリ内では、変数は次のように表すことができます- ポインタの宣言 これは、以下に示すように、「p」が別の整数変数のアドレスを保持するポインタ変数であることを意味し
-
newを使用してC++で2D配列を宣言するにはどうすればよいですか
動的2D配列は、基本的に配列へのポインターの配列です。これは、寸法が3x4の2D配列の図です。 アルゴリズム Begin Declare dimension of the array. Dynamic allocate 2D array a[][] using new. Fill the array with the elements. Print the array. Clear the memory by deleting it. End サンプルコード