Khởi tạo bằng 0 (Zero initialization) là việc đặt giá trị ban đầu của một đối tượng trong C++ thành 0.
Cú pháp
T{} ; char array [n] = “”;
Các tình huống mà khởi tạo bằng 0 được thực hiện:
Biến có tên với bộ nhớ static hoặc thread-local được khởi tạo thành 0.
Được dùng làm khởi tạo giá trị cho các kiểu non-class và các thành viên của class không có constructor.
Được dùng để khởi tạo mảng ký tự khi độ dài của nó lớn hơn số ký tự cần gán.
Điểm cần nhớ
Một số loại biến như biến static và thread-local được khởi tạo bằng 0 trước, sau đó khởi tạo lại giá trị khi được gọi.
Một con trỏ được khởi tạo bằng 0 gọi là con trỏ null (null pointer).
Ví dụ
Chương trình minh họa khởi tạo bằng 0 trong 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 << "Biến đối tượng khởi tạo bằng 0:\t";
cout << obj.x << "\t" << obj.y << "\t" << obj.z << "\n";
cout << "Giá trị float khởi tạo bằng 0:\t";
cout << f[0] << "\t" << f[1] << "\t" << f[2] << "\n";
cout << "Giá trị con trỏ khởi tạo bằng 0:\t";
cout << p << "\n";
return 0;
}
Kết quả
Biến đối tượng khởi tạo bằng 0: 0 0 0 Giá trị float khởi tạo bằng 0: 0 0 0 Giá trị con trỏ khởi tạo bằng 0: 0