私は、typedefコマンドを使用して配列に異なるライセンスプレートを格納するプログラムを作成することになっています。私の友人は私のコードを渡しましたが、実際に彼の説明を得ていませんでした。これは彼のコードです:Typedef配列の混乱
#include <iostream>
using namespace std;
typedef char string[8]
...functions functions...
int main(){
string license_plate[100]
...
ここで何が起こったのかちょっと混乱しています。私はtypedefが何であるか知っていますが、実際にはそれを配列で見たことはありません。私は
typedef char string[8]
を理解するものから、私はstring[8]
を書くたびコンパイラは、それが代わりにchar
になることを意味します。
しかし、それは私には意味がありませんでした。なぜ[8]とタイプするのでしょうか?だから私はこれが彼が残したエラーだと思って、[8]を削除し、エラーなしでコンパイルしました。
私は訂正してstring license_plate[100]
がコンパイラの目にchar license_plate[100]
以上になると言いたいのですか?もし私がちょうど私がちょうどchar license_plate[100]
をタイプすることができたときこれのすべてを使用することによってなぜ自分自身を混乱させるか。
いずれかのドン」を'' namespace std;を使って ''(私がお勧めするもの) ''あなたの型を 'string'と名付けないでください。標準の文字列クラス 'std :: string'があることを忘れないでください。 –
あなたはこのように質問を策定する必要がありますhttp://stackoverflow.com/questions/ask/advice?答えを得る機会を増やすこと。そうでなければ、 'typedef'は既存の型に代替名を与えるために使われます。 –