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



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


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


同様に


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


float型の配列宣言の表記方法は


int型の配列宣言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言語入門シーズン1まで


いらっしゃ~い_)


もし


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


先程の例のように


実数の型float型配列 hairetuboxの


配列変数


hairetubox[1]

hairetubox[2]


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


整数値データ1,2でなく


(例えるなら)


実数データ1.000000や2.000000


が格納されるぞ


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


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


数値データの型変換は


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










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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る