2015-12-14 5 views
-4

Дано:разница между * (х + 4) и (х + 4)

int x[10] = {1,2,3,4,5,6,7}; 

В чем разница между: *(x+4) и (x+4) ??

+0

Это не ясно, что вы просите, потому что '* (х + 4)' и '(х + 4) 'совершенно разные. что тебя смущает? –

+0

@iharob, в чем разница между ними? – Maximillan

+0

Пожалуйста, разместите прецедент, и я скажу вам разницу, так как они появляются в вашем вопросе, вы не можете их сравнить. –

ответ

1

*(x + 4) различия между пятым элементом массива, который имеет значение 4.

(x + 4) - адрес пятого элемента массива (который является соответствующим адресом значения 4).

Вы можете проверить, что (x + 4), и почему:

printf("sizeof(int) = %ld \n", sizeof(int)); 
printf("x = %p \n", x); 
printf("(x + 4) = %p \n", (x + 4)); 

Пример вывода:

sizeof(int) = 4 
x = 0x7fff3c0e5fc0   # address of the first element 
(x + 4) = 0x7fff3c0e5fd0 # address of the fifth element 
+0

Это нормально, но вопрос странный. Я хотел понять, почему ОП спрашивает об этом. –

+1

Да, просто дайте ему то, что он просил – artm

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