つまり いきなり直接、数値データ1がint型の変数aに格納されているのではありません
int a=1; の実行においては int型の形式でメモリに格納された数値データ1 がint型の変数aに格納されることになります
ソーラー「それでは
今日は
とってもとっても基本的で大切な
🌞int a=1;🌞
が実行されるときの仕組みを見ていきたいと思います」
#include <stdio.h>
int main(void){
int a=1;
return 0;
}
ビルド実行結果
1
ソーラー「
みなさん
aの変数宣言、初期化
int a=1;
はよく見かける
基本的な命令文だね
この命令文では
🌞まず🌞
数値データ1
が
int型の形式でメモリに格納されることになります
その後
int型の変数aに
int型の形式でメモリに格納された数値データが1が格納されているんだよ
いきなり
int型の変数aに数値データ1が代入されているわけではないんだ」
アレサ「😊
int a;
短い命令文の中にそのような仕組みがあるのですね」
ソーラー「で(^_-)-☆
次のプログラムをみてよ
👇
#include <stdio.h>
int main(void) {
int a = 1.12345;
printf("%d\n", a);
return 0;
}
警告文
警告 C4244 '初期化中': 'double' から 'int' への変換です。データが失われる可能性があります
とともに
ビルド実行結果
1
が表示されます
ソーラー「このプログラムの
int a = 1.12345;
に御注目下さい
int a = 1.12345;
が実行されると
🌞まず🌞
数値データ1.12345
が
double型の形式でメモリに格納されることになります
次に
その
double型の形式でメモリに格納された数値データ1.12345が
int型の変数aに代入されることになります
このとき
double型の形式でメモリに格納された数値データ1.12345は
int型の変数aにそのまま代入することはできないので
数値の型変換により
1.12345の小数点以下の項が切り捨てられた
1
が
int型の変数aに代入されることになります
このとき
1.12345から1にデータ変換が行われることにより
1.12345の小数点以下の項のデータの情報量が失われています
そのことを
コンパイラは
警告 C4244 '初期化中': 'double' から 'int' への変換です。データが失われる可能性があります
で
教えてくれているんだよ
この警告文からも
int a = 1.12345;
が実行されたとき
まず
数値データ1.12345
が
double型の形式でメモリに格納されているのがうかがえるね!(^^)!」
ソーラー「さらに
次のプログラムをご覧ください
👇
#include <stdio.h>
int main(void) {
float a = 1;
printf("%f\n", a);
return 0;
}
ビルド実行結果
1.000000
ソーラー「
今回は警告文は表示されないね
このプログラムでは
まず
int型の形式で数値データ1がメモリに格納されることになります
その後
float型の変数aに
int型の形式でメモリに格納された数値データ1が格納されることになるのですが
float型の変数aに
int型の形式でメモリに格納された数値データ1が格納されることになるので
数値の型変換がおこり
1 が(実数値の1.0として) に変換され
float型の変数aに1.0
が
格納されることになります
この場合は
1 が1.0になっただけなので
数値データの情報量が失われることがないので
警告文が表示されることはないんだね
つまり
int型の形式でメモリに格納されたデータを
float型の変数に格納する場合は
数値の型変換がおこなわれても
データの情報量が失われることはなく
コンパイラによって警告文が表示されることはないというわけなんだ
数値の型変換がおこなわれるからといって
必ずしも警告文が表示されるとは限らないんだね
そして
printf関数に%f出力変換指定子をもちいて
数値データを表示する際は小数点以下6桁までが表示されるので
ビルド実行結果
1.000000
が表示されているんだね」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます