2017-01-11 7 views
-1

私はxがポインタである場合GDBでは、*(x + value)= valueは何をしますか?

=デリファレンス x

* =デリファレンス

*xxで値を取得することを理解しています。 xがポインタであり、可変xが存在する場合

*x = 5は、= 5 xセット。

ここで+値の部分は何ですか?

Ie. 

x = 5 

*ptr; 

ptr = &x 

*ptr gives us 5. 
+1

まず、投稿したスニペットには「* x」はありません。第2に、 '* x = 5'は' x'を '5'に設定せず' * x'を '5'に設定します。 – AnT

+0

これは通常のC構文です。詳細については、Cの本を参照する必要があります。 – Olaf

答えて

2

x + 5xの値に5*sizeof(*x)を追加し、その位置を間接参照。

*(x + 5)は、x[5]とまったく同じです。

+0

だからx + 1なら1 * sizeof(* x)はxのベースアドレスになります。 ありがとうございます! – TigerCode

+0

@TigerCode実際に '0 * sizeof(* x)'は、 'x'に追加されると、ベースアドレスを与えます。 – dbush

関連する問題