ค่าคงที่คืออะไร

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

1.ใช้ preprocessor directive : define
จำสิ่งที่เรียกว่า preprocessor ไ้ด้มั้ย ที่มันจะขึ้นต้นด้วย "#" เช่น #include ครับ การประกาศค่าคงที่เราก็จะใช้ preprocessor เช่นกัน แต่จะใช้  #define แทน #define เป็นเพื่อนกับ #include ครับ เวลาประกาศเราก็ประกาศไว้แถวๆ #include นั่นแหละ ถือเป็นส่วนเดียวกัน วิธีการคือ

#define ชื่อตัวแปร ค่าตัวแปร

เช่น

#define PI 3.141593
#define NAME  "handsome"
#define AGE "14"

ซึ่งเวลาเราประกาศแบบนี้ เราไม่ต้องบอกชนิดข้อมูล(int char long float double ...)นะครับ โปรแกรมจะกำหนดให้เราเอง การตั้งชื่อค่าคงที่นิยมใช้พิมพ์ใหญ่ครับ เพื่อกันความสับสน ดูตัวอย่างโปรแกรมคำนวณพื้นที่และเส้นรอบรูปวงกลมนะครับ

#include [stdio.h] // change [ , ] to < , >
#define PI 3.141593

int main()
{
    float radius
    scanf("%f",&radius);
    printf("Area = %f\n",PI*radius*radius);
    printf("Circumference = %f",2*PI*radius);
    scanf(" ");
    return 0;
}

แบบนี้พอเข้าใจมั้ยครับ จริงๆเราประกาศใน main  ก็ได้นะ

int main()
{
    #define NAME "handsome"

ไม่ต้องมีเซมิโคลอนนะครับ

2.ใช้คำสงวน const  (constant)
เป็นอีกวีธีนึงนะครับ เวลาระกาศ เหมือนประกาศตัวแปรทั่วไปทุกอย่าง เพียงแต่เอาคำว่า const ไปแปะไว้ข้างหน้าเท่านั้นเอง ดูรูปแบบนะครับ

const ชนิดข้อมูล ชื่อตัวแปร = ค่า;

เช่น

const float PI = 3.141593;

3.ประกาศแบบยกชุดด้วย enum
เป็นรูปแบบสุดท้ายครับ ใช้ประกาศทีละหลายๆตัว มีรูปแบบคือ

enum {ชื่อตัวแปร = ค่า,ชื่อตัวแปร = ค่า...};

เช่น

enum { a=5,b=10,c=9,d=9};

หรือเราอาจจะไม่กำหนดค่าก็ได้ครับ มันจะกำหนดค่าให้อัตโนมัติ ไล่ตั้งแต่ 0 1 2 3...

enum {a,b,c,d};

แบบนี่ก็จะได้ a=0 b=1 c=2 d=3 ...

หรืออาจจะกำหนดแค่บางตัว ตัวต่อไปมันจะไล่ค่าไปให้ เช่น

enum { a=5,b,c,d};

พอเราให้ a เป็น 5 ตัวต่อไปก็จะเป็น 6 7 8... ตามลำดับ

การเก็บค่าในตัวแปรให้ได้มากเป็นสองเท่า!!!

ง่ายๆครับ ด้วยการเอา "unsigned" ไปไว้ข้างหน้าตอนประกาศ(เหมือนเวลาใส่ const) จากตัวแปรที่เก็บค่าได้ -127 ถึง 128 มันจะเก็บได้ 0 ถึง 255  หรือถ้าเคยเก็บได้ -32767 ถึง 32768 มันจะกลายเป็น 0-65537 คือเอาด้านลบมาต่อที่ด้านบวกนั่นเอง เช่น

unsigned int a;

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

Tweet

ขอเพิ่มข้อเสนอแนะนำครับ
ถ้าสอนคนที่ไม่เคยเขียนโปรแกรมเลย
น่าจะ Print Screen มาแป๊ะไว้นะครับ
คนที่เข้ามาเรียนรู้จะเห็นภาพว่าสุดท้ายแล้ว
ผมลัพภ์ของค่าตัวแปรต่างๆที่เวลา print ออกมาแล้วจะเป็นยังไงนะครับ

แต่เขียนดีแล้วนะครับเป็กำลังใจให้ครับ big smile
ให้ฮอตแล้วกันครับเผื่อจะมีคนเข้ามาอ่านเพิ่มเติม Hot! Hot! Hot!