答えて
あなたの前提が間違っています。最初のものはポインタ型で、2番目のものはうまくいきます...何もない、それは有効なC++ではありません(どちらもCではありません)。 静的配列は、より多くのこのようなものです:
char var[15];
動的配列は、通常、vectorsで行う一方です。
配列とポインタの間で混乱が*(a+n)
とa[n]
は同じことを意味Cプログラミング言語からの遺産であるので、我々はa
がポインタではなく配列であってもa[n]
を使用することができます。これはC++ではあまり慣用的ではありません。
これはポインタです:
char* var;
これは文法的に間違っている、とコンパイルされません:C++での
char var*;
配列とポインタ同じことではありませんが、シンタックスのように見えるかもしれません。あなたはこのようにC++での配列を宣言することができます。
char ary[] = {'a','b','c'};
...これは有効である - の3つの要素で作成された配列が存在します。
またポインタとる関数を作成することができます
void foo(char* bar)
{
// ...
}
を...そしてそれをary
を渡す:
foo(ary);
...そしてそれは、コンパイルと正常に動作します。これはポインタと配列が同じものだと信じさせるかもしれません。しかし彼らはそうではありません。 bar
上記のfoo
は配列ではありません。配列の最初の要素を指すポインタです。
'foo(ary);'の呼び出しで、 'ary'が必要なポインタに崩壊することに言及する価値があります。 – chris
- 1. C++ポインタと配列
- 2. 配列とポインタC
- 3. C:ポインタと配列
- 4. cポインタと配列
- 5. C - ポインタと配列
- 6. C++の配列とポインタ
- 7. ポインタの配列とC++の配列へのポインタ
- 8. C++配列ポインタ
- 9. c programmin配列とポインタ
- 10. 配列とポインタはC++
- 11. C++のポインタ配列
- 12. C#2Dポインタ配列
- 13. C char配列ポインタ
- 14. C++からC#:ポインタと配列
- 15. 配列、ポインタとポインタ
- 16. Cのポインタの配列へのポインタの配列
- 17. cの配列へのポインタ
- 18. C - 異なるメソッドのポインタと配列
- 19. 多型とポインタの配列(C++)
- 20. charポインタとchar配列のstrcpyオーバーフローC
- 21. Cプログラミング、charポインタの配列
- 22. C++/OpenGL - 配列のポインタ
- 23. Cプログラム内の配列ポインタ
- 24. C++ 2D配列へのポインタ
- 25. C配列/ポインタの問題
- 26. C配列、ポインタのセグメンテーションフォールト
- 27. 配列へのポインタC++
- 28. char配列へのポインタC++
- 29. 関数ポインタの配列C++
- 30. C++ 2次元配列とポインタ参照
+1助けてくれてありがとう –