Почему это утверждение if верно?Другой адрес - PullRequest
0 голосов
/ 28 декабря 2018

Я не понимаю, почему это утверждение if верно, может кто-нибудь объяснить мне это?

int a[8][8] = {0};

if(&a[7][0] == &a[0][0] || &a[5][1])
    printf("true\n");

1 Ответ

0 голосов
/ 28 декабря 2018

Это условное

if (&a[7][0] == &a[0][0] || &a[5][1])

означает

if ( (&a[7][0] == &a[0][0]) || (&a[5][1] != 0) )

И во всех случаях вы никогда не найдете адрес a[5][1] равным нулю.Таким образом, ваши условия всегда выполняются.

Возможно, вы имели в виду это условие:

if (&a[7][0] == &a[0][0] || &a[7][0] == &a[5][1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...