Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ชนิดข้อมูลพื้นฐานที่ยังไม่ได้กำหนดค่าเริ่มต้นในโปรแกรม C/C++


ในส่วนนี้ เราจะเห็นเมื่อเราประกาศตัวแปรหนึ่งตัวที่ไม่ได้กำหนดค่าเริ่มต้น ซึ่งค่าที่เก็บไว้ในภาษา C หรือ C++ บางครั้งเราคิดว่าคอมไพเลอร์กำหนดค่าบางอย่างเช่น 0 สำหรับ int, 0.0 สำหรับ float เป็นต้น แต่อะไรจะเป็นสำหรับประเภทข้อมูลอักขระ ให้เราดูการใช้งานและคอมไพล์โดยใช้คอมไพเลอร์ที่แตกต่างกัน

ตัวอย่าง (C++)

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <iostream>
using namespace std;
int main() {
   char char_var;
   float float_var;
   int int_var;
   double double_var;
   long long_var;
   cout << char_var << endl;
   cout << float_var << endl;
   cout << int_var << endl;
   cout << double_var << endl;
   cout << long_var << endl;
}

เอาต์พุต (คอมไพล์ใน Cpp.sh)

0
0
0
0

ผลลัพธ์ (รวบรวมใน GDB ออนไลน์)

5.88054e-39
0
6.95297e-310
0

เอาต์พุต (ระบบภายในเครื่อง)

9.73438e-039
4309744
1.15685e-306
-53505136

ตอนนี้คำถามมาถึงว่าทำไมคอมไพเลอร์ C/C++ ไม่เริ่มต้นตัวแปรด้วยค่าเริ่มต้น? คำตอบนั้นง่าย ค่าใช้จ่ายในการเริ่มต้นตัวแปรสแต็กนั้นมีราคาแพง เนื่องจากจะขัดขวางความเร็วในการดำเนินการ อันเป็นผลมาจากตัวแปรเหล่านี้สามารถประกอบด้วยค่าที่ไม่แน่นอน ดังนั้นจึงถือเป็นแนวทางปฏิบัติที่ดีในการเริ่มต้นตัวแปรประเภทข้อมูลพื้นฐานก่อนนำไปใช้ในโค้ด