초기화 제로 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