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

การเข้าถึงตัวแปร int และ float โดยไม่ได้กำหนดค่าเริ่มต้นในภาษา C


ปัญหา

ประกาศตัวแปร int และ float โดยไม่กำหนดค่าเริ่มต้น และพยายามพิมพ์ค่าของพวกมันในภาษา C อธิบายว่าจะเกิดอะไรขึ้น

วิธีแก้

  • หากตัวแปรถูกประกาศแต่ไม่ได้กำหนดค่าเริ่มต้น (Uninitialized) และพยายามพิมพ์ค่า จะได้ค่า 0 หรือค่าขยะ (Garbage Value)

  • เมื่อเราประกาศตัวแปร ตำแหน่งหน่วยความจำจะถูกจัดสรรให้ตัวแปรนั้น การกำหนดค่าเริ่มต้นคือการครอบครองตำแหน่งหน่วยความจำที่จัดสรรไว้แล้ว

  • แต่ในโปรแกรมด้านล่าง เราไม่ได้กำหนดค่าในตำแหน่งหน่วยความจำที่จองไว้ แต่มันถูกครอบครองด้วยค่า 0 หรือค่าขยะโดยค่าเริ่มต้น เมื่อพยายามพิมพ์ จะแสดง 0 หรือค่าขยะเป็นเอาต์พุท

ตัวอย่าง

โปรแกรม C สำหรับการเข้าถึงตัวแปร int และ float:

#include <stdio.h>

int main() {
    float a, b, c;
    int x, y, z;
    
    printf("value of a:%f\n", a);
    printf("value of b:%f\n", b);
    printf("value of c:%f\n", c);
    printf("value of x:%d\n", x);
    printf("value of y:%d\n", y);
    printf("value of z:%d", z);
    return 0;
}

ผลลัพธ์

เมื่อรันโปรแกรม จะได้ผลลัพธ์ดังนี้:

value of a: 0.000000
value of b: 0.000000
value of c: 0.000000
value of x: 1512368
value of y: 0
value of z: 27