Tutorial

C Language 101 - All About Variable & Basic Operation (EP.2)

By Arnon Puitrakul - 10 เมษายน 2015

C Language 101 - All About Variable & Basic Operation (EP.2)

สวัสดีฮ่ะ! นี่ก็ตอนที่ 2 แล้วหลังจากที่เขียนตอนที่แล้ว แล้วหายไปหลายวันอยู่ วันนี้กลับมาแล้ว กับตอนที่ 2 เย้ๆๆ อ่อ ลืม สวัสดีปีใหม่ไทยล่วงหน้านะครับ
มาเข้าเนื้อหากันเลย วันนี้เราจะมาพูดถึงเรื่อง ตัวแปร หรือ Variable

มันเอามาทำอะไร?

จากตอนแรกที่เราเขียนกันเมื่อ EP. ที่แล้ว เราก็ได้แค่ส่งข้อมูลออกทางหน้าจอ แต่ข้อมูลนั้นก็ตายตัว ตายคาที่อยู่ตรงนั้น แต่ตัวแปรจะเป็นตัวเก็บค่าอะไรก็ได้ตามที่เราต้องการ **งงล่ะสิ!! **เอางี้มาลองดู กันก่อน เราจะมาลองเขียนโปรแกรมบวกเลขง่ายๆกัน (ใครบวกเลขไม่เป็นไปหัดมาก่อนนะ)

#include <stdio.h>
  int main ()
  {
    int a;
    a=5;
    printf("%d",a+1);
    return 0;
  }

ก่อนอื่นเราก็เขียน include กับ main function ตามปกติ เหมือนตอนที่แล้วเลย แต่สังเกตมั้ยครับมันอะไรงอกออกมา นั่นคือ int a;
บรรทัด int a; จะเป็นการประกาศตัวแปรที่เป็น Integer หรือ จำนวนเต็ม ที่ชื่อว่า a นั่นเอง!
เพราะฉะนั้นการประกาศตัวแปรจะทำได้ง่ายๆดังนี้

dataType VarName;

dataType คือประเภทของตัวแปร เช่น int, double, long เป็นต้น และ VarName นั่นคือชื่อตัวแปรที่เราตั้งเองตามใจชอบ (อย่าตั้งชื่อแปลกๆนะเฮ้ย!! ตั้งให้มันเข้ากับสิ่งที่มันเก็บด้วยนะ)
อีกเรื่องนั่นคือ ด้านใน printf มันเปลี่ยนไปนิดหน่อย จาก EP. ที่แล้วเรารู้ว่า คำสั่ง printf คือคำสั่งที่เอาข้อความออกทางหน้าจอ แล้วก็ให้ใส่ข้อความลงใน "" ได้เลย แต่อันนี้เราต้องการที่จะแสดงค่าตัวแปรออกมา เลยต้องใส่ %d (ขึ้นกับประเภทของตัวแปร เดียวจะบอกด้านล่างล่ะกัน) แล้วตามด้วย , (comma) และชื่อตัวแปรที่เราต้องการแสดง ถ้ามีหลายตัวก็ใส่ไปเรื่อยๆเลยเช่น

printf("%d %d %d",a,b,c);

การให้ค่ากับตัวแปร

ก็ไม่ยากครับ แค่ชื่อตัวแปร = ค่าที่ต้องการ

a = 5;

หรือจะกำหนดให้มันตอนประกาศไปเลยก็ได้ เช่น

int a = 5;

ประเภทของตัวแปรที่ใช้บ่อยๆ

  • int (Integer)(%d) หรือว่ากันภาษาไทยนั้นคือ จำนวนเต็ม เก็บได้ทั้งเต็มลบ เต็มบวก ส่วนได้แค่ไหนนั้นไปหาเอาเอง lol
  • double (Double)(%ld) อันนี้จะใช้หน่วยความจำเยอะกว่า int หน่อย แต่เราสามารถเก็บทศนิยมได้ด้วยล่ะ
  • float (Float) (%f) ตัวนี้จะเป็นตัวแปรที่เก็บได้เฉพาะทศนิยมเท่านั้น
  • char (Character) (%c) ตัวนี้ง่ายๆเลยครับ เก็บตัวอักษร ย้ำว่า แค่ตัวอักษรเท่านั้นนะครับ ตัวเดียวเช่น 'A' อะไรแบบนี้นะครับ

Operation เบื้องต้น

เหมือนที่ใช้ให้ดู เมื่อโค๊ตด้านบนเลย พวก +,-,*,/ อะไรแบบนี้ พวกนี้ก็ใช้ปกติได้เลย ง่ายๆ
แต่ๆๆ มันจะมี Operator นึงพิเศษหน่อย เรียกว่า Modulus หรือเรียกสั้นๆว่า mod มันคือการหารครับ แต่เอาแต่เศษมาอย่างเดียว เช่น
5 mod 2 มันจะได้ 1 ง่ายมากๆ
มาดู Operator อีกแบบนึง เรียกว่า Overloaded Operator อารมณ์มันคือ Operator Version ขี้เกียจนั่นเอง เป็นยังไง มาลองดูกัน

a++;
b--;

a += b;
a -= b;
a /= b;

สำหรับ 2 อันแรก จะเป็นการ บวก 1 หรือลบ 1 ขึ้นกับ เครื่องหมายที่เราใส่เช่น a-- มันก็คือให้ a มีค่าเป็น a-1 นั่นเอง (จริงๆแล้ว a++ เขียนเป็น ++a ก็ได้เหมือนกัน มันจะต่างตอนที่เราเขียนสูงไปหน่อย เดียวค่อยสอนใน EP ต่อๆไป a-- ก็ได้ด้วยน้าา เดี๋ยวน้อยใจ)
ส่วนอีก 3 อันด้านล่าง จะเป็นการทำกับ ตัวแปรอื่น เช่น a+= b; คือ a = a+b; ตัวอื่นๆก็เช่นกันต่างไปตามเครื่องหมายที่เราใส่เข้าไป!
สำหรับวันนี้ก็หมดเพียงเท่านี้ เรื่องแรกๆมันง่ายๆจริงนะ เขียนสั้นๆก็จบและ ดีๆๆ สวัสดีปีใหม่ไทยล่วงหน้า และ เที่ยวสงการต์อย่างปลอดภัยนะครับ สวัสดีครับ //ทำไมเหมือนรายการทีวีจังว่ะ!!!

Read Next...

จัดการข้อมูลบน Pandas ยังไงให้เร็ว 1000x ด้วย Vectorisation

จัดการข้อมูลบน Pandas ยังไงให้เร็ว 1000x ด้วย Vectorisation

เวลาเราทำงานกับข้อมูลอย่าง Pandas DataFrame หนึ่งในงานที่เราเขียนลงไปให้มันทำคือ การ Apply Function เข้าไป ถ้าข้อมูลมีขนาดเล็ก มันไม่มีปัญหาเท่าไหร่ แต่ถ้าข้อมูลของเราใหญ่ มันอีกเรื่องเลย ถ้าเราจะเขียนให้เร็วที่สุด เราจะทำได้โดยวิธีใดบ้าง วันนี้เรามาดูกัน...

ปั่นความเร็ว Python Script เกือบ 700 เท่าด้วย JIT บน Numba

ปั่นความเร็ว Python Script เกือบ 700 เท่าด้วย JIT บน Numba

Python เป็นภาษาที่เราใช้งานกันเยอะมาก ๆ เพราะความยืดหยุ่นของมัน แต่ปัญหาของมันก็เกิดจากข้อดีของมันนี่แหละ ทำให้เมื่อเราต้องการ Performance แต่ถ้าเราจะบอกว่า เราสามารถทำได้ดีทั้งคู่เลยละ จะเป็นยังไง เราขอแนะนำ Numba ที่ใช้งาน JIT บอกเลยว่า เร็วขึ้นแบบ 700 เท่าตอนที่ทดลองกันเลย...

Humanise the Number in Python with "Humanize"

Humanise the Number in Python with "Humanize"

หลายวันก่อน เราทำงานแล้วเราต้องการทำงานกับตัวเลขเพื่อให้มันอ่านได้ง่ายขึ้น จะมานั่งเขียนเองก็เสียเวลา เลยไปนั่งหา Library มาใช้ จนไปเจอ Humanize วันนี้เลยจะเอามาเล่าให้อ่านกันว่า มันทำอะไรได้ แล้วมันล่นเวลาการทำงานของเราได้ยังไง...

ทำไม 0.3 + 0.6 ถึงได้ 0.8999999 กับปัญหา Floating Point Approximation

ทำไม 0.3 + 0.6 ถึงได้ 0.8999999 กับปัญหา Floating Point Approximation

การทำงานกับตัวเลขทศนิยมบนคอมพิวเตอร์มันมีความลับซ่อนอยู่ เราอาจจะเคยเจอเคสที่ เอา 0.3 + 0.6 แล้วมันได้ 0.899 ซ้ำไปเรื่อย ๆ ไม่ได้ 0.9 เพราะคอมพิวเตอร์ไม่ได้มองระบบทศนิยมเหมือนกับคนนั่นเอง บางตัวมันไม่สามารถเก็บได้ เลยจำเป็นจะต้องประมาณเอา เราเลยเรียกว่า Floating Point Approximation...