C言語のsizeof(サイズオブ)演算子について
はじめまして。
C言語の初学者です。
sizeof(サイズオブ)演算子の理解でつまづいています。
参考書の説明は下記の通りです。
要素数を数えるのは面倒くさいので、要素数を自動的に求めて繰り返させることにします。
要素数を求める直接的な方法は用意されていませんが、計算することは出来ます。
配列全体のサイズを求め、それを要素1つのサイズで割れば要素の数がわかります。
C言語には、変数や配列のサイズを求めるsizeof(サイズオブ)演算子があります。
sizeof演算子は、次のようにして使います。
sizeof(変数や配列名)
sizeof演算子には()をつけなくても良いのですが、つけた方が読みやすいでしょう。
この演算子を使って配列arrayの要素数を求めるには次のようにします。
sizeof(array) / sizeof(array[0])
上記の説明文にある、【配列全体のサイズ】と【要素1つのサイズ】の【サイズ】とは何を指しているのでしょうか。
また、上記の【sizeof(array) / sizeof(array[0])】の割り算の意味が分かりません。
下記のプログラムを例にして、具体的に何を何で割っているのか数字を当てはめて教えてください。
よろしくお願い致します。
#include <stdio.h>
int main(void)
{
int array[] = {42,79,13,75,19};
int i;
for (i = 0;i < sizeof(array) / sizeof(array[0]);i++) {
printf("array[%d] = %d\n",i,array[i]);
}
return 0;
}
このプログラムの実行結果は次の通りになります。
array[0] = 42
array[1] = 79
array[2] = 13
array[3] = 75
array[4] = 19
お礼
ありがとうございます。そんな裏技があったのですね。 おっしゃるとおりできる限りPHPで処理しようと思います。