さて、ポインタ配列について読んだ私の理解から:
配列は、インデックス付きの各要素を指すため、定数ポインターと同等と見なされます。また、配列へのポインターは、最初のインデックスのアドレスと同等です。
まあ-これは有効なので:
int test[] = {1, 2, 3}
int * point = test;
cout << test + 2; //gives the address of the 3rd element test[2]
私は疑問に思っていましたが、なぜこれは異なる動作をするのでしょうか?
char arr[] = "testing pointer arrays";
char * pointer = arr;
cout << pointer + 3 << endl; //would output the actual string at pos arr[3]
同様に:
char * test = "zomg";
cout << test + 2; //outputs mg
この場合、char ポインターは本当に特別なのでしょうか? ストリーミング用の関数で、ポイントをインクリメントしてサイズを指定することで、書き込み/読み取りができるバイト数を指定する方法に関する別の質問に私を導きます (ofstream::write(char pointer, size); のように)さらに、構造体を文字ポインタに型キャストすると、それをバイト配列に変換できますか?
明確化していただければ幸いです、ありがとう。