ホームページ  >  記事  >  バックエンド開発  >  ポインタを使用してCで配列要素の合計を計算するにはどうすればよいですか?

ポインタを使用してCで配列要素の合計を計算するにはどうすればよいですか?

王林
王林転載
2023-09-10 20:45:031402ブラウズ

ポインタは、他の変数のアドレスを格納する変数です。

次のステートメントを考えてみましょう-

int qty = 179;

ポインタを使用してCで配列要素の合計を計算するにはどうすればよいですか?

ポインタの宣言 h2>

ポインタを宣言するための構文は次のとおりです-

int *p;

ここで、「p」は他の変数のアドレスを保持するポインタ変数です。

ポインターの初期化

アドレス演算子 (&) は、ポインター変数の初期化に使用されます。

例:

int qty = 175;
int *p;
p= &qty;

ポインター配列

これはアドレスのコレクション (または) ポインタのコレクションです。

宣言

次はポインターの配列の宣言です。

datatype *pointername [size];

たとえば、

int *p[5];

これは、次の値を保持できるポインターの配列を表します。 5 つの整数要素アドレス。

Initialization

'&' は初期化に使用されます

例:

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;

Accessing

間接演算子(*) はアクセスに使用されます。

例:

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 : </p><p>");
   scanf("%d", &n);
   ptr = (int *) malloc(n * sizeof(int));
   printf("Enter elements in the List </p><p>");
   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</p><p>", 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で配列要素の合計を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。