Распространенным заблуждением является то, что Something x = {0};
должен инициализировать все элементы одним и тем же значением.
Стандарт C гласит, что если все элементы в «агрегате» (массивы, структуры и т. Д.) Не инициализируются явно, то остальные значения следует инициализировать так, как если бы они имели статическую продолжительность хранения.
И все элементы, которые имеют статическую длительность хранения, то есть те, которые объявлены с ключевым словом static и со всеми глобальными переменными, должны быть инициализированы нулем, если программист не инициализировал их явно.
Так в вашем примере "rollno "и" cgpa "инициализируются явным образом, в этом случае равными нулю, а остальная часть структуры инициализируется так, как если бы она имела статическую продолжительность хранения, то есть она также будет равна нулю.