天国にいけるC言語入門 ヘキサ構造体 ver2.2126
配列にはint型配列やfloat型配列などがあります。つまり配列に格納できる数値データは整数値データか実数値データのどちらかのタイプの数値データとなっています。
配列には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型の配列変数にあわせて数値データが格納されるというわけだな
型に合わせた数値データの変換がおこなわれているってわけだ。
数値データの型変換は
いろんなところででてくるな~」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます