ページ 11

lengthの使い方(初心者です)

Posted: 2011年3月09日(水) 19:19
by ジョぱん
こんにちは
 int k[12] = {1,2,3,4,5,6,7,8,9,10,11,12};
とグローバル変数で定義したあと、mainで
 for(int i=0; i<k.length;){
とforループしようとしているんですが、
 error:request for member 'lengh' in 'k', which is non-class type 'int[12]'
とエラーがでてしまいます
どこがおかしいのでしょうか?
それと、kの定義のとこは、一定値の配列なので
 const int k[12] = {1,2,3,4,5,6,7,8,9,10,11,12};
としてもよろしいのでしょうか?(どちらにしてもエラーになりますけど)

よろしくおねがいします。

Re: lengthの使い方(初心者です)

Posted: 2011年3月09日(水) 19:47
by maru
int k[12]にはlengthなんていう名前のプロパティは有りません。
というか、基本型に".xxxx"という表現でアクセスできるようなプログラム言語要素は存在しません。

他言語の知識でプログラムしようとしているようですが、c/c++言語の基本的なところから学習する必要がありそうです。
(普通の初心者はいきなり k.length なんて入力しないと思いますが。)

Re: lengthの使い方(初心者です)

Posted: 2011年3月09日(水) 19:54
by ジョぱん
ありがとうございます。
配列の要素数、長さ、を表現できるプロパティはないのでしょうか?あったら教えてください。

Re: lengthの使い方(初心者です)

Posted: 2011年3月09日(水) 20:18
by YuO
ジョぱん さんが書きました:配列の要素数、長さ、を表現できるプロパティはないのでしょうか?
無いです。
maru さんが書きました:基本型に".xxxx"という表現でアクセスできるようなプログラム言語要素は存在しません。
とmaruさんが書かれた意味をちゃんと理解してください。

コード:

sizeof(arr) / sizeof(arr[0])
が配列型変数の要素数を取得する一般的な方法です。

Re: lengthの使い方(初心者です)

Posted: 2011年3月09日(水) 20:24
by maru
ジョぱん さんが書きました:ありがとうございます。
配列の要素数、長さ、を表現できるプロパティはないのでしょうか?あったら教えてください。
うーん、「lengthなんていう名前のプロパティは有りません。」でプロパティというものが有ると勘違いさせてしまいましたかね。

コンパイル時に決定している配列の長さを求めるにはsizeof演算子を使って全体のバイト長とその配列の要素のバイト長を求めて計算します。
size_t length = sizeof(k)/sizeof(k[0]);

Re: lengthの使い方(初心者です)

Posted: 2011年3月09日(水) 20:30
by dic
javaですか?

Re: lengthの使い方(初心者です)

Posted: 2011年3月09日(水) 20:31
by softya(ソフト屋)
C++はJavaやC#など他の言語と違い基本型や配列に残念ながらプロパティはありません。

Re: lengthの使い方(初心者です)

Posted: 2011年3月09日(水) 20:56
by ジョぱん
ありがとうございました。