Я прочитал это:
в C, локальные переменные начинаются с неизвестного значения
, и я решил проверить это, вот что я сделал:
Три результата одной и той же программы: 1 , 2 , 3 .
Вопрос 1: Почему неизвестнозначение в 1, или почему глобальное int
было 0, а локальное int
было 1?
Вопрос 2: Почему локальное unsigned int
с каждым новым началом было разным?
Вопрос 3: Является ли глобальный / локальный char
''?char ch = ' '; // something like that
Вопрос 4: Почему глобальные и локальные значения начинаются с разных значений (если они не инициализированы)?Для чего?
Исходный код: (я использовал clang (v10.0.0) для компиляции)
#include <stdio.h>
int global_int;
unsigned int global_unsint;
char global_char;
int main()
{
int local_int;
unsigned int local_unsint;
char local_char;
printf ("Global int: %d \t unsigned_int: %u \t char: %c\n", global_int, global_unsint, global_char);
printf ("Local int: %d \t unsigned_int: %u \t char: %c\n", local_int, local_unsint, local_char);
}