Cプログラムでは、文字のバッファを宣言しました。char buffer_in[500]
; CにおいてGDBデバッガ:char配列型検査と印刷コマンド
(gdb) ptype buffer_in
type = char [500]
(gdb) ptype &buffer_in
type = char (*)[500]
(gdb) p &buffer_in
$9 = (char (*)[500]) 0x7fffffffdb60
(gdb) x buffer_in
0x7fffffffdb60: 0x2e
(gdb) x &buffer_in
0x7fffffffdb60: 0x2e
をIが宣言と文字の配列は、オブジェクトがポインタのように参照されている場合:私は、GDB上のステップによって、このプログラムステップを実行すると、このコマンドで iはバッファ参照をテストします。 I & buffer_inこれは、配列x buffer_in
の出力がx &buffer_in
?と同じ理由で、配列の最初の要素のアドレスです。私はx buffer_in
が0x2eアドレスを調べるためにトライしなければならないと考えています。
おかげ
[私のこのブログの投稿](https://ghost.pileborg.se/2016/08/28/the-difference-between-arrays-decaying-to-pointers-and-pointers)を読むことをお勧めします。 -to配列/)、それは例えば'buffer_in'と'&buffer_in'です。 –