2017-01-11 8 views
-1

Я понимаю, чтоВ GDB, что делает * (x + значение) = значение?

* = разыменовать

*x = Разыменование x, чтобы захватить значение в x если x является указателем.

*x = 5, set x = 5 если x - указатель и переменная x существует.

Что здесь делает значение + value?

Ie. 

x = 5 

*ptr; 

ptr = &x 

*ptr gives us 5. 
+1

Во-первых, в отрывке, который вы опубликовали, нет '* x'. Во-вторых, '* x = 5' не устанавливает' x' '' '' '' '' '' '' '' '' '' '' '' '' ''. – AnT

+0

Это обычный синтаксис C. О деталях, вы должны проконсультироваться с вашей книгой C. – Olaf

ответ

2

x + 5 добавляет 5*sizeof(*x) к значению x и разыменовывает это место.

*(x + 5) в точности эквивалентен x[5].

+0

, так что если это было x + 1, тогда 1 * sizeof (* x) приведет к простому базовому адресу для x. Спасибо! – TigerCode

+0

@TigerCode Фактически '0 * sizeof (* x)', при добавлении в 'x', дает вам базовый адрес. – dbush

 Смежные вопросы

  • Нет связанных вопросов^_^