Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Zero Initialization ใน C++

Zero initialization คือการตั้งค่าเริ่มต้นของออบเจ็กต์ใน C++ เป็นศูนย์

ไวยากรณ์

T{} ; char array[n] = "";

สถานการณ์ที่มีการทำ zero initialization ได้แก่:

  • ตัวแปรที่มีชื่อพร้อม static หรือ thread-local storage จะถูกเริ่มต้นเป็นศูนย์

  • ใช้เป็นการเริ่มต้นค่าสำหรับ non-class types และสมาชิกของคลาสที่ไม่มี constructor

  • ใช้เริ่มต้น character array เมื่อความยาวมากกว่าจำนวนตัวอักษรที่จะกำหนด

จุดที่ต้องจดจำ

  • บางประเภทของตัวแปร เช่น static variables และ thread-local variables จะถูกเริ่มต้นเป็นศูนย์ก่อน แล้วค่อย reinitialize เป็นค่าอื่นเมื่อถูกเรียกใช้

  • Pointer ที่ถูก zero-initialized จะเรียกว่า null pointer

ตัวอย่าง

โปรแกรมแสดงการนำ zero initialization ไปใช้งานใน 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