#include <stdio.h>
int main(){
int a = 3;
int b[] = {1,2};
int c = 4;
b[3] = 10;
printf("a = %d\n",a);
return 0;
}
Output: 10
Возможно, это целочисленный вывод, он также не несет никакого мусорного значения, но после того, как я присваиваю значение переменной а как a = 5 и выше значения 5, он просто печатает вывод как есть, скажите мне, что здесь происходит!





В вашем коде есть неопределенное поведение, которое
b[3] = 10;
Когда вы инициализировали свой массив, вы выделили место только для двух элементов. Вы пытаетесь получить доступ к 4-му элементу, и эта память не принадлежит массиву, поэтому вы получаете странные результаты. Случилось так, что переменный a хранится в том же месте, что и b[3], поэтому он перезаписывается
Попробуйте распечатать sizeof свой массив и проверить, сколько памяти выделено для массива