ปัญหา
ประกาศตัวแปร int และ float โดยไม่ต้องเริ่มต้น และพยายามพิมพ์ค่าในภาษา C อธิบายว่าจะเกิดอะไรขึ้น
วิธีแก้ปัญหา
-
หากมีการประกาศตัวแปรแต่ไม่ได้เริ่มต้นหรือไม่ได้กำหนดค่าเริ่มต้น และหากตัวแปรเหล่านั้นพยายามพิมพ์ ตัวแปรนั้นจะคืนค่า 0 หรือค่าขยะบางส่วน
-
เมื่อใดก็ตามที่เราประกาศตัวแปร ตำแหน่งจะถูกจัดสรรให้กับตัวแปรนั้น สิ่งเดียวคือด้วยความช่วยเหลือของการเริ่มต้น เรากำลังพยายามครอบครองตำแหน่งหน่วยความจำซึ่งได้รับการจัดสรรแล้วในขณะที่ประกาศ
-
แต่ในโปรแกรมด้านล่าง เราไม่ได้กำหนดค่าเริ่มต้นในตำแหน่งหน่วยความจำที่สงวนไว้ แต่โดยค่าเริ่มต้น ตำแหน่งจะถูกครอบครองด้วย 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