cで配列を定義する正しい方法は何ですか?c - 配列を定義する正しい方法は何ですか?
#include <iostream>
#include <unistd.h>
#define Lookup[9][] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"}
cで配列を定義する正しい方法は何ですか?c - 配列を定義する正しい方法は何ですか?
#include <iostream>
#include <unistd.h>
#define Lookup[9][] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"}
定義して配列を初期化する正しい方法は
char Lookup[][3] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"};
Lookup
自体がある配列の各要素である:以下の構成は コンパイラは「期待式」エラーを与え、機能しません。 3バイトの別の配列ゼロターミネータで数えれば、文字列2文字分のスペースが十分です。
配列内の要素の数は、例えば、int
の配列を定義する
int k;
for (k = 0; k < sizeof Lookup/sizeof *Lookup; k++) {
printf("element at index %d: %s\n", k, Lookup[k]);
}
ゼロターミネータを取り除く方法はありますか? –
(本当に高速なアルゴリズムのルックアップテーブルを作成する必要があります。ゼロターミネータでは、それはより複雑で遅くなります) –
2バイトでもっとも内側の配列を定義すると、結果の要素はもはや文字列ではありませんが、 。文字列ではないので、私は平易な 'char'ではなく' unsigned char'(または 'signed char')を使うことでやや明確にしたいと思います:' unsigned char Lookup [] [2] = {"00"、 "01"、 "02"、 "03"、 "04"、 "05"、 "06"、 "07"、 "08"}; **要素はもはや文字列ではありません**。 'printf'の中の' '%s" 'の使用はエラーです('
のように、発現sizeof Lookup/sizeof *Lookup
で利用可能である:
int int_array[10];
を定義し、配列を初期化int
:
int int_array[] = { 1, 2, 3, 4, 5 };
配列を初期化する場合、要素数の指定はオプションです。
C++での例ではなく、普通のC++での例です... – gavenkoa
Ugh!データを '#define 'しないでください! – pmg