C ар дайым объекттердин баштапкы маанилери боюнча абдан так болуп келген. Эгерде глобалдык же статикалык болсо, алар нөлгө барабар болот. Эгер auto болсо, маани аныкталбайт. Бул C89ге чейинки компиляторлордо болгон жана аны K&R жана DMR'дин баштапкы C отчетунда көрсөткөн.
С тилинде демейки инициализация барбы?
Айрым программалоо тилдеринен айырмаланып, C/C++ көпчүлүк өзгөрмөлөрдү берилген мааниге (мисалы, нөл) автоматтык түрдө инициализациялабайт. Ошентип, компилятор тарабынан өзгөрмөгө эстутум орду ыйгарылганда, ал өзгөрмөнүн демейки мааниси ошол эстутумдун жайгашкан жеринде мурунтан эле болгон (таштанды) маани болуп саналат!
С тилинде массивдин демейки инициализациясы кандай?
Мисалы, бүтүн массивдер 0 менен инициализацияланат. Double жана float маанилери 0,0 менен инициализацияланат. char массивдери үчүн демейки маани '\0' болуп саналат. Көрсөткүчтөрдүн массивинин демейки мааниси nullptr.
С тилинде динамикалык инициализация мүмкүнбү?
Объекттин динамикалык инициализациясы C++
Объекттин динамикалык инициализациясы иштөө убагында объекттерди инициализациялоону билдирет б.а. объекттин баштапкы мааниси учурунда берилет иштөө убактысы. Ага конструкторлорду колдонуу жана конструкторлорго параметрлерди өткөрүү аркылуу жетүүгө болот.
Кайсы өзгөрмөлөр C тилинде автоматтык түрдө инициализацияланат?
Глобалдык өзгөрмөлөр декларациялоо учурунда автоматтык түрдө 0гө инициализацияланат. Глобалдык өзгөрмөлөр көбүнчө негизги функциянын алдында жазылат. 4-сапта a жана b int түрүндөгү эки глобалдык өзгөрмө катары жарыяланды.