ホームページ > よくある問題 > 配列内の要素は異なるデータ型であってもよいでしょうか?

配列内の要素は異なるデータ型であってもよいでしょうか?

青灯夜游
リリース: 2023-01-13 00:31:11
オリジナル
24719 人が閲覧しました

いいえ、配列内の各要素のデータ型は同じです。配列は一般的に使用されるデータ構造で、順序付けされたデータのコレクションです。配列内の各要素は同じデータ型を持ち、統一された配列名と添字を使用して配列内の要素を一意に識別できます。

配列内の要素は異なるデータ型であってもよいでしょうか?

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

いいえ、配列内の各要素のデータ型は同じです。

配列の概念と定義

データをメモリに入れるには、最初にメモリ空間を割り当てる必要があることはわかっています。 4 つの整数を入れるには、4 つの int 型メモリ空間を割り当てる必要があります。

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

このようにして、4 つの int 型メモリ空間がメモリに割り当てられ、合計 4×4=16 バイトが与えられます。それらにはaと呼ばれる名前が付けられています。

このようなデータのセットを配列 (Array) と呼び、それに含まれる各データを配列要素 (Element) と呼び、含まれるデータの数を配列の長さ (Length) と呼びます。たとえば、次のようになります。 int a[4]; は長さ 4 の整数配列を定義し、名前は a です。

配列の各要素にはシリアル番号があり、このシリアル番号はおなじみの 1 ではなく 0 から始まり、インデックスと呼ばれます。配列要素を使用する場合は、次の形式で添え字を指定するだけです。

arrayName[index]
ログイン後にコピー

arrayName は配列の名前、index は添え字です。たとえば、a[0] は 0 番目の要素を表し、a[3] は 3 番目の要素を表します。

次に、最初の行の 4 つの整数を配列に入れます:

a[0]=20;
a[1]=345;
a[2]=700;
a[3]=22;
ログイン後にコピー

ここでの 0、1、2、および 3 は配列の添字、a[0]、a[ 1 ]、a[2]、a[3]は配列要素です。

学習プロセスでは、ループ構造を使用してデータを配列に入力し (つまり、値を配列要素に 1 つずつ代入し)、ループ構造を使用して出力します (つまり、配列要素の値を順番に) として、1 ~ 10 の 10 個の数値を配列に入れる方法を示しましょう:

#include <stdio.h>
int main(){
    int nums[10];
    int i;
   
    //将1~10放入数组中
    for(i=0; i<10; i++){
        nums[i] = (i+1);
    }
   
    //依次输出数组元素
    for(i=0; i<10; i++){
        printf("%d ", nums[i]);
    }
   
    return 0;
}
ログイン後にコピー

実行結果:

1 2 3 4 5 6 7 8 9 10
ログイン後にコピー

変数 i は両方とも配列の添字ですおよびループ条件; 配列の添字はループ条件として機能し、最後の要素に到達するとループは終了します。配列 nums の最大添字は 9 で、10 を超えることはできないので、ループの条件を i<10 と規定します。i が 10 に達すると、ループは終了する必要があります。

ユーザーが 10 個の数値を入力して配列に入力できるように上記のコードを変更します:

#include <stdio.h>
int main(){
    int nums[10];
    int i;
   
    //从控制台读取用户输入
    for(i=0; i<10; i++){
        scanf("%d", &nums[i]);  //注意取地址符 &,不要遗忘哦
    }
   
    //依次输出数组元素
    for(i=0; i<10; i++){
        printf("%d ", nums[i]);
    }
   
    return 0;
}
ログイン後にコピー

実行結果:

22 18 928 5 4 82 30 10 666 888↙
22 18 928 5 4 82 30 10 666 888
ログイン後にコピー

コードの 8 行目で、scanf () reads データをフェッチするときはアドレスが必要です (アドレスはデータの保存場所を示すために使用されます)。nums[i] は特定の配列要素を表すため、アドレスを取得するには前に & を追加する必要があります。

最後に、配列の定義方法をまとめます。

dataType  arrayName[length];
ログイン後にコピー

dataType はデータ型、arrayName は配列名、length は配列の長さです。例:

float m[12];  //定义一个长度为 12 的浮点型数组
char ch[9];  //定义一个长度为 9 的字符型数组
ログイン後にコピー

次の点に注意してください:

1) 配列内の各要素のデータ型は同じである必要があります (int a[4] の場合) ;、各要素は両方とも int である必要があります。

2) 配列の長さに n などの変数が含まれる場合、すべてのコンパイラで実行できるように、配列の長さは 10、20*4 などの整数または定数式であることが望ましいです。 , 4 *m など、一部のコンパイラではエラーが報告されますが、これについては「C 言語の可変長配列: 変数を使用した配列の長さの指定」のセクションで具体的に説明します。

3) 配列要素にアクセスする場合、添え字の値の範囲は 0 ≤ Index

プログラミング関連の知識について詳しくは、プログラミング入門をご覧ください。 !

以上が配列内の要素は異なるデータ型であってもよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート