Имеет ли int в Objective-C значение по умолчанию 1? - PullRequest
5 голосов
/ 12 мая 2011

У меня есть эта простая строка кода:

int x;

x автоматически имеет значение 1. Я ничего не устанавливаю, но когда я отлаживаю, это показывает, что x1.

Имеет ли int значение по умолчанию 1?!

Ответы [ 4 ]

21 голосов
/ 12 мая 2011

Нет. int имеет неопределенное значение по умолчанию. В данном случае это просто 1. С таким же успехом это может быть -18382 или 22 или 0xBAADF00D.

Всегда инициализируйте ваши переменные в C.

6 голосов
/ 12 мая 2011

Начальное значение не определено, и в этом случае будет то, что было в этой ячейке памяти до того, как x начал его использовать.

(В зависимости от окружающего кода вы можете обнаружить, что в вашем конкретном случае это всегда 1, но вы не можете быть в этом уверены.)

5 голосов
/ 12 мая 2011

Нет, напротив, x вообще не имеет значения по умолчанию.То, что вы видите, это мусор, на который была помещена переменная, когда вы ее создали.

0 голосов
/ 08 мая 2014
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...