C言語で配列を初期化する方法

青灯夜游
リリース: 2023-01-07 11:45:29
オリジナル
36938 人が閲覧しました

方法: 1. 配列を定義するとき、すべての要素に初期値を割り当てます (例: "int a[5]={1,2,3,4,5}"; 2. 値を割り当てます)一部の要素に、例: " int a[5]={1,2}"; 3. 定義時に配列の長さを指定せず、すべての要素に初期値を直接割り当てます、例: "int a[] ={1,2,3,4,5}"。

C言語で配列を初期化する方法

このチュートリアルの動作環境: Windows7 システム、C99 バージョン、Dell G3 コンピューター。

配列の初期化

配列の初期化は、次のメソッドを使用して実行できます:

1)配列を定義する際に、すべての要素に初期値 を割り当てることを「完全初期化」といいます。例:

int a[5] = {1, 2, 3, 4, 5};
ログイン後にコピー
ログイン後にコピー

配列要素の初期値を中括弧で囲むことにより、初期化後、a[0]=1; a[1]=2; a[2]= 3; a[3]=4; a[4]=5、つまり、左から右へ順番に各要素に割り当てられます。初期化中、各要素はセミコロンではなくコンマで区切られることに注意してください。

2) 一部の要素にのみ値を割り当てることができます。これを「不完全な初期化」と呼びます。例:

int a[5] = {1, 2};
ログイン後にコピー

で定義された配列 a には 5 つの要素がありますが、中括弧内に指定される初期値は 2 つだけです。これは、最初の 2 つの要素 a[0] と a[1] のみを意味します。が初期化されており、次の 3 つの要素はいずれも初期化されていません。初期化が不完全な場合、初期化されていない要素は自動的に 0 に設定されます。

「初期化が不完全」と「まったく初期化されていない」は異なることに注意してください。 「全く初期化していない」、つまり初期化せずに「int a[5];」のみを定義した場合、各要素の値は0にならず、すべての要素がガベージ値になります。

「int a[5]={};」と書くこともできません。中括弧内に何も記述しない場合、重大な文法上の誤りとなります。中括弧内に少なくとも 1 つの数字を記述する必要があります。たとえば、「int a[5]={0};」は配列を「クリア」することを意味し、このとき配列の各要素はゼロになります。また、定義された配列の長さが中括弧で囲まれた初期値の数より小さい場合も、「a[2]={1, 2, 3, 4, 5」のような構文エラーになります。 };"。

3) 配列を定義するときに配列内のすべての要素に初期値を代入する場合は、要素数がすでに設定されているため、配列の長さを指定する必要はありません。この時点で決まっている。 私たちはプログラミングするときにこの書き方をよく使います。これは便利で、問題がなく、要素の数を計算する必要がなく、システムが自動的にスペースを割り当ててくれるためです。例:

int a[5] = {1, 2, 3, 4, 5};
ログイン後にコピー
ログイン後にコピー

は次のように記述できます:

int a[] = {1, 2, 3, 4, 5};
ログイン後にコピー

2 番目の書き方の中括弧内には 5 つの数値があるため、システムは自動的に配列 a の長さを 5 として定義します。 。ただし、これを記述できるのは配列を定義する際の初期化時のみであることに注意してください。配列が初期化なしで定義されている場合、配列の長さを省略すると構文エラーになります。例:

int a[];
ログイン後にコピー

この場合、コンパイル中にエラーが表示され、コンパイラは配列の長さが指定されていないことを通知します。

# include <stdio.h>
int main(void)
{
    int a[5] = {1, 2, 3, 4, 5};
    int i;
    for (i=0; i<5; ++i)
    {
        printf("%d\n", a[i]);
    }
    return 0;
}
ログイン後にコピー

出力結果は次のとおりです:

1
2
3
4
5
ログイン後にコピー

a は配列の名前を表し、[5] は配列に 5 があることを表します。要素は、それぞれ a[0]、a[1]、a[2]、a[3]、a[4] で表されます。そして、中括弧内の数字 1、2、3、4、5 を変数 a[0]、a[1]、a[2]、a[3]、a[4] にそれぞれ代入します。繰り返しますが、添え字は a[1] ではなく、0 (a[0]) から始まります。

scanf を使用して、キーボードから配列を手動で初期化することもできます:

# include <stdio.h>
int main(void)
{
    int a[5] = {0};  //数组清零初始化
    int i;
    printf("请输入5个数:");
    for (i=0; i<5; ++i)
    {
        scanf("%d", &a[i] );
    }
    for (i=0; i<5; ++i)
    {
        printf("%d\x20", a[i]);
    }
    printf("\n");
    return 0;
}
ログイン後にコピー

出力結果は次のとおりです:

请输入5个数:1 2 3 4 5
1 2 3 4 5
ログイン後にコピー
これは、scanf を使用して文字列を入力する場合とは異なります。数値を入力するときは、for ループを使用して数値を入力する必要があります。文字列を入力するときにループを使用する必要はなく、scanf を使用するだけです。

関連する推奨事項: 「

C 言語ビデオ チュートリアル

以上がC言語で配列を初期化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!