Память и переменные
Сейчас я вам задам вопрос, который большинству покажется до жути глупым, а мне он не даёт покоя уже много времени.
Так вот. К примеру в С++ переменная int занимает в памяти 4 байта. Так написано в книге. Объявляем переменную Х данного типа не присваивая ей пока никакого значения. Сколько будет она занимать места в памяти?
А сейчас присвоим ей значение, скажем, 100 000 ( х = 100 000 ). Неужели теперь переменная Х будет занимать 400 000 байт (~390 кбайт)? Тут даже страшно представить, что будет если я объявлю массив...
2^(4 * 8) = ?
Бит - разряд двоичного кода (двоичная цифра). Может принимать только два взаимоисключающих значения: да/нет, 1/0, включено/выключено.
Т.е. в возможных комбинаций битов в одном байте = 2^8 - 1 = 255 = 0xFF.
Т.е. в одном байте возможных комбинаций битов 0xFF ^ 4 - 1 = 4294967295 = 0xFFFFFFFF.
Вне зависимости от значения переменной (комбинации битов).
При обявлении переменной, грубо говоря, резервируется область памяти требуемого размера. В данном случае 4 байта.
Вы подменяете понятия числа и цифры.
Цитата: vazha.t
Всем привет!
Сейчас я вам задам вопрос, который большинству покажется до жути глупым, а мне он не даёт покоя уже много времени.
Сейчас я вам задам вопрос, который большинству покажется до жути глупым, а мне он не даёт покоя уже много времени.
За "много времени" мог бы уже взять книгу и прочитать вдумчиво.
Цитата: vazha.t
Так вот. К примеру в С++ переменная int занимает в памяти 4 байта. Так написано в книге. Объявляем переменную Х данного типа не присваивая ей пока никакого значения. Сколько будет она занимать места в памяти?
Эмалированное ведро (с крышкой) занимает в сарае место равное 10 литрам.
Покупаем такое ведро и ставим в сарай не наливая в него пока ничего.
Сколько места будет занимать ведро в сарае?
Цитата: vazha.t
А сейчас присвоим ей значение, скажем, 100 000 ( х = 100 000 ). Неужели теперь переменная Х будет занимать 400 000 байт (~390 кбайт)? Тут даже страшно представить, что будет если я объявлю массив...
А теперь нальем в ведро, скажем, 4 литра воды. Неужели теперь ведро будет занимать 40 литров? Тут даже страшно представить, что будет если я куплю десяток полных ведер...