配列にはint型配列やfloat型配列などがあります。つまり配列に格納できる数値は整数値か実数値のどちらかのタイプの数値となっています。

アレサ「ここでfloat型配列さん、も御紹介します。


int型配列は整数値を格納します。


同様に


float型配列は実数値を格納します。


表記方法は


配列宣言int hairetubox [2] ={1,2};


と同様に


float hairetubox [2] ={1.0,2.0};


と配列名の前にfloat をつけ


今度は{  }の中に実数を代入していきますね。


格納する数値が整数値から実数値にかわります。


要素数である[2] の2の部分は実数になりませんね。😊


それと


整数値1と実数値7.1を同時に


int hairetubox [2] ={1,7.1};


のように


int型の配列であるhairetuboxの


配列宣言で記述することはできるのですが


このとき

int hairetubox [2] ={1,7.1};

によって生成される配列変数


hairetubox [0] には1が

hairetubox [1] には7.1が


hairetubox [0]=1;

hairetubox [1]=7.1;

格納されることになりますが


hairetubox [0]

hairetubox [1]


ともにint型の数値の入れ物なので


hairetubox [1] に実数値である7.1が格納されるとき数値7.1が


int型に収まるよう小数点以下が切り捨てられ


hairetubox [1]には整数値7が格納されることになります。


マックス

「ま、配列に 整数値を格納するところが実数値に変わったというだけで


今まで通り


配列宣言の方法はおなじか・・・


あっ


そうだ そうだ


いまさっきの例では


配列が整数値を収めるint型だったから


配列の中のデータを格納するいれものである


配列変数の数が格納される数値より多かった場合


代入する数値のない


配列変数には0が代入されていた。


それでは


配列が実数値を収めるfloat型だったら


配列変数が配列変数に格納される数値の数より多い場合は


代入する数値のない


配列変数には


float型ゆえ整数値0でなく実数値0.0が代入されるのかいな?



たとえば


このとき


float型の hairetubox の配列宣言は次のように


float hairetubox [7] ={1.0,2.0};

(要素数7, 格納する数値は1.0,2.0の2つの場合)


記述されているんじゃないか?


配列変数の数は7で格納する数値は1.0,2.0の2つと


配列変数の数が格納する数値よりおおいってわけだな。


あとは これを


プログラムに組み込んでコンパイルしてみると・・・

👇

#include <stdio.h>


int main(void)

{

float hairetubox[7] ={1.0,2.0};

printf("%f\n",hairetubox [0]);

printf("%f\n",hairetubox [1]);

printf("%f\n",hairetubox [2]);

printf("%f\n",hairetubox [3]);

printf("%f\n",hairetubox [4]);

printf("%f\n",hairetubox [5]);

printf("%f\n",hairetubox [6]);

return 0;

}


コンパイル結果

1.000000

2.000000

0.000000

0.000000

0.000000

0.000000

0.000000


マックス「


hairetubox [0]には1.000000

hairetubox [1]には2.000000


のこりの

hairetubox [2]には0.000000

hairetubox [3]には0.000000

hairetubox [4]には0.000000

hairetubox [5]には0.000000

hairetubox [6]には0.000000


が代入されている(ようにみえる)わけだ。これも簡単!




%d出力変換指定子を%f出力変換指定子に変更しわすれやすいぞ!


注意、ちゅいい~


俺は~


printf("%d\n",hairetubox [0]);



%d出力変換指定子のところを


hairetuboxはfloat型の配列になったのに


%f出力変換指定子に変更しわすれて


土壷にはまっちまった~い~


沼地を進行しちまったぜい・・・


ここで


配列変数に格納した数値1.0や2.0が1.000000や2.000000と


printf出力表示されているのは%f出力変換指定子の性質だったよな~


(_詳しくはあちらの世界、天国にいけるC言語入門まで


いらっしゃ~い_)


もし


このfloat型配列に{1.0,2.0};でなく{1,2};のように整数値を代入したなら


先程の例のように


実数の型float型配列 hairetuboxの


配列変数


hairetubox[1]

hairetubox[2]


に整数値1,2が代入される際 


整数値1,2でなく


実数1.000000や2.000000


が格納されるぞ


float型の配列変数にあわせて数値が格納されるというわけだな


型に合わせた数値の変換がおこなわれているってわけだ。


数値の型変換は


いろんなところででてくるな~」










  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます