1
char *x[4] = { "ffg", "fgf", "kkk" "mmm"};
int *x1[4] = { 1, 2 ,3 , 4};

上記のように文字ポインターの配列を作成すると、コンパイルは正常に行われますが、2行目に記載されているように整数ポインターの配列を作成すると、エラーが発生します

'initializing' : cannot convert from 'int' to 'int *'

構文が文字に対しては正常に機能しているが、整数に対しては機能していない方法。誰か説明してください。

4

4 に答える 4

10

"ffg"タイプはchar* 1ですが、1タイプはありませんint( not int* )。今すぐ問題を確認してください。

1 : まあ、技術的char[4]は Cですが、それは暗黙的に に崩壊しchar*ます。C++ では型はであり、コンパイラから警告またはエラーが発生するconst char[4]はずです。

于 2013-10-23T13:46:02.493 に答える
3

int *x1[4] = { 1, 2 ,3 , 4};これを行うことはできません。整数ポインターの代わりに整数を格納しています。配列に整数ポインターを格納するには、次の手順に従います。

int *x1[4] ;
int i , j , k , l;
x1[0] = &i;
x1[1] = &j;
x1[2] = &k;
x1[3] = &l;
于 2013-10-23T13:49:53.740 に答える