C言語 入門 小学生でもわかるC言語3

五日目 「char」や「int」のサイズ

「わかりやすく!」がテーマです!

HOME/小学生でもわかるC言語3 目次/五日目 「char」や「int」のサイズ/

広告

↓2016年02月29日発売↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2016/5/10 22:16時点)

もっと!C、C++言語本

目次へ戻る

?と思ったら

わからなそうな用語集

サイズを調べる

今回はあとあとよく使うようになる「sizeof」というのを使って「char」や「int」のサイズを調べたいと思います。

/*プログラム11*/
#include <stdio.h>

int main(){
	printf("char = %d\n",sizeof(char));
	printf("int = %d\n",sizeof(int));

	return 0;
}

■実行結果■

実行結果(i-5-1)

サイズを調べるには「sizeof()」というものを使います。

カッコの中に調べたい変数やら配列やらをいれればサイズを求める事ができます。

続けて今度は配列のサイズを調べてみます。

/*プログラム12*/
#include <stdio.h>

int main(){
	int count;
	int hairetu[10] = {0,1,2,3,4,5,6,7,8,9};

	printf("hairetu = %d\n",sizeof(hairetu) / sizeof(int));

	for(count = 0;count < sizeof(hairetu) / sizeof(int);count++){
		printf("hairetu[%d] = %d\n",count,hairetu[count]);

	}

	return 0;
}

■実行結果■

実行結果(i-5-2)

こんな感じですね。

後半の「for」文に注目です。

for(count = 0;count < sizeof(hairetu) / sizeof(int);count++)

「sizeof(hairetu)」だとサイズは「40」になりますね。

「sizeof(int)」のサイズは「4」です。

これを「40÷4」とすると「10」でつまりは配列の個数が求められるワケです。

こうすれば配列の大きさが変わった時も「for」文は変更せずに済みますね。

エラー防止

以前に宣言した配列の大きさを超えてデータを読み書きしてしまうバッファオーバーフローという結構マズイエラーの事に少しふれました。

自分ではわかっているつもりでも大きなプログラムになるにつれて途中変更などが発生すると、さきほどのプログラムのような配列の個数の変更などでミスが発生してしまうかもしれないし、ましてやバッファオーバーフローなどを起こすと他のデータまで破壊してしまうのでよくありません。

そこで正確にサイズを指定する事によって少しでも手間とミスを減らすのです。

それでは次回はデータの大きさを指定してファイルの読み書きを行ってみたいと思います。

次回

六日目 サイズを指定して読み書き

□ページの先頭へ□

□目次へ戻る□

広告

↓2014年06月20日発売↓

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

新品価格
¥2,500から
(2016/5/10 22:17時点)

↓2014年10月25日発売↓

超本格! サンプルで覚えるC言語 3Dゲームプログラミング教室

新品価格
¥3,110から
(2016/5/10 22:18時点)

↓2013年07月25日発売↓

小学生からはじめるわくわくプログラミング

新品価格
¥2,052から
(2016/5/10 22:21時点)

↓2016年05月13日発売↓

小学生からはじめるわくわくプログラミング2

新品価格
¥2,052から
(2016/5/10 22:22時点)

もっと!C、C++言語本