초기화 제로 C++에서 개체의 초기 값을 0으로 설정하고 있습니다.
구문
T{} ; char array [n] = “”;
제로 초기화가 수행되는 상황은 -
-
정적 또는 스레드 로컬 저장소가 있는 명명된 변수는 0으로 초기화됩니다.
-
비클래스 유형 및 생성자가 없는 클래스 멤버에 대한 값의 초기화로 사용됩니다.
-
길이가 할당할 문자 수보다 클 때 문자 배열을 초기화하는 데 사용됩니다.
기억해야 할 점
-
정적 변수 및 스레드 로컬 변수와 같은 일부 유형의 변수는 먼저 0으로 초기화된 다음 호출될 때 값으로 다시 초기화됩니다.
-
0으로 초기화된 포인터를 널 포인터라고 합니다.
예시
무 초기화의 구현을 보여주는 프로그램 C++에서 -
#include <iostream> #include <string> using namespace std; struct zeroInitialization { int x, y, z; }; float f[3]; int* p; string s; int main(int argc, char* argv[]){ zeroInitialization obj = zeroInitialization(); cout<<"Zero initialized object variable :\t"; cout<<obj.x<<"\t"<<obj.y<<"\t"<<obj.z<<"\n"; cout<<"Zero initialized float value :\t"; cout<<f[0]<<"\t"<<f[1]<<"\t"<<f[2]<<"\n"; cout<<"Zero initialized pointer value :\t"; cout<<p<<"\n"; return 0; }
출력
Zero initialized object variable : 0 0 0 Zero initialized float value : 0 0 0 Zero initialized pointer value : 0