ในภาษา C หากต้องการใช้ตัวแปร จะต้องทำการประกาศตัวแปรไว้ที่ส่วนบนก่อนที่จะถึงบรรทัดที่เป็นประโยคคำสั่ง
การประกาศตัวแปรจะเป็นการบอก compiler ว่าตัวแปรของเรานั้นเป็นตัวแปรชนิดใด
Datatype | Keyword |
character integer float double | char int float double |
รูปแบบของการประกาศคือ
Keyword list of variable ; |
char chr1 , chr2 ; |
ทดลองสังเกตตัวอย่างต่อไปนี้
#include
/* my second program */
main()
{
int First , Second , Sum; /* variable declaration */
First = 10 ;
Second = 20 ;
Sum = First + Second ;
printf( " The sum of %d and %d is %d " , First , Second , Sum );
}
ดูโปรแกรมแล้วพบว่านี่คือโปรแกรมที่จะทำการบวกเลข 2 จำนวนคือ 10 และ 20 โดย การเก็บค่า 10 เอาไว้ในตัวแปรชื่อ First และเก็บค่า 20 ไว้ในตัวแปร Second จากนั้นก็ทำการบวกทั้งสองค่าโดยเก็บผลลัพธ์ที่ได้ไว้ในตัวแปรที่ชื่อว่า Sum จากนั้นทำการ แสดงค่าของทั้ง 3 ตัวแปรออกมาทางจอภาพ
อธิบายโปรแกรมโดยละเอียด จะได้ว่า
ที่บรรทัด int First , Second , Sum ; นั้นเราได้สั่งให้มีการประกาศตัวแปรชนิด integer 3 ตัวคือ First , Second และ Sum
บรรทัดถัดมา คือ First = 10 ; เป็นการกำหนดค่า จำนวนเต็ม 10 ให้กับตัวแปรที่เป็นจำนวนเต็ม (integer) ส่วนนี้สำคัญคือ เรากำหนดตัวแปรเป็น integer นั่นก็คือ ตัวแปรชนิดนี้จะเก็บเฉพาะค่าที่เป็นจำนวนเต็มเท่านั้น หากเราใส่ค่า 10.2 ให้กับตัวแปร ตัวแปรนั้นก็ยังคงเก็บเลขจำนวนเต็มอยู่เสมอ
บรรทัดถัดมา คือ Second = 20 ; ก็คือการกำหนดค่า 20 ให้กับตัวแปร Second
บรรทัดถัดมา คือ Sum = First + Second ; คือการนำค่าของ 2 ตัวแปรมาบอกกันและเก็บไว้ที่ตัวแปร Sum
บรรทัดต่อมาคือ printf( " The sum of %d and %d is %d " , First , Second , Sum ); จะต้องอธิบายกันยาวหน่อยดังนี้
ฟังก์ชัน printf( )
ฟังก์ชัน printf( ) มีรูปแบบดังนี้
printf ( " control string " , variable list ); |
ตัวกำหนดชนิดข้อมูล | ความหมาย |
%c %d %f %lf %s %% | แทนตัวอักษร แทนเลขจำนวนเต็ม แทนเลขทศนิยม ( float ) แทนเลขทศนิยม (double) แทนสตริงก์ แทนเครื่องหมาย % |
printf( " The sum of %d and %d is %d " , First , Second , Sum );
พบว่า เรามี ตัวกำหนดชนิดข้อมูลคือ %d ซึ่งแทนชนิดข้อมูลที่เราจะพิมพ์คือ integer ซึ่ง %d ตัวแรกจะใช้แทนค่าของ First ตัวที่สองจะใช้แทนค่าของ Second ตัวที่สามจะใช้แทนค่าของ Sum
จากโปรแกรมข้างต้นผล run ที่ออกมาจะปรากฎดังนี้
The sum of 10 and 20 is 30
นอกจากนี้เรายังพบว่าเรายังสามารถกำหนดลักษณะการพิมพ์ได้ดังต่อไปนี้
#include
main()
{
int a;
float b ;
a = 50 ;
b = 10.583 ;
printf ( " a = %d n " , a ) ;
printf ( " b = %f n " , b ) ;
printf ( " a = %05d n " , a );
printf ( " b = %10.4f n " , b );
printf ( " b = % -10.4f n " , b );
}
พบว่า ผล run ที่ได้คือ
a = 50
b = 10.583000 พบว่าแสดงทศนิยม 6 หลัก เป็นปกติ
a = 00050 พบว่า a มีความยาว 5 ตำแหน่ง นับจากซ้าย
b = ___10.5830 พบว่า เราสั่งให้ %10.4 คือ การสั่งให้มีความยาวทั้งหมด 10 ตำแหน่ง รวมด้วยการมีทศนิยม 4 ตำแหน่ง
b = 10.5830 คล้ายกับบรรทัดก่อนหน้าแต่เราใส่เครื่องหมาย - เพื่อให้มันพิมพ์ชิดซ้าย
สังเกตได้ว่าในส่วน control string นี้จะลงท้ายด้วย n เขาเรียกว่าเป็น backslash character constant ซึ่งเป็นการกำหนดให้ขึ้นบรรทัดใหม่ แต่ยังมีอีกหลายรูปแบบที่น่าสนใจดังนี้
สัญลักษณ์ | ความหมาย |
b f n r t " ' o v a N XN | backspace form feed newline carriage return horizontal tab double quote single quote null blackslash vertical tab bell octal number (N=octal constant) hexadecimal constant (N = hexadecimal constant) |
ขอบอกว่าที่ใช้อยู่จริงๆ ก็มีแค่ n t o เท่านั้นส่วนอื่นๆ ถ้าต้องการใช้จริงๆ ค่อยมาเปิดตำราอ่านเอาเองนะ
เมื่อมาถึงจุดนี้สรุปการใช้คำสั่ง printf อย่างคร่าวๆ คือ
1. ถ้าต้องการแค่พิมพ์ข้อความขึ้นบนหน้าจอหรือที่เรียกว่า prompt เพื่อให้ผู้ใช้รู้ว่าจะต้องเติมข้อมูลอะไรลงไป หรือเพียงต้องการพิมพ์ Title ของโปรแกรมที่เราเขียนเท่านั้น เช่น เราต้องการเขียนว่า First Program Version 1.1 เราก็จะใช้ คำสั่ง printf("First Program Version 1.1"); หรือ เราต้องการให้ผู้ใช้ใส่ชื่อของผู้ใช้เองลงในโปรแกรม ก็สั่ง printf("Please Enter your Name : "); ซึ่งเหตุผลที่จะต้องมีข้อความนี้เพราะ แน่นอนว่าเมื่อเรา Run โปรแกรมขึ้นมาแล้วปรากฎว่าไม่มีข้อความนี้ แสดงอยู่ แล้วผู้ใช้จะไปทราบได้อย่างไรว่า จะต้องใส่ชื่อของตนเองลงไป
2. ถ้าต้องการพิมพ์ ข้อความ แล้วตามด้วย ค่า ที่เราคำนวณได้ หรือ ค่า ที่เก็บไว้ในตัวแปร นั้นๆ เราสามารถทำได้ง่ายๆ ยกตัวอย่างเช่น เรามีตัวแปร width ที่เก็บค่าความยาว และตัวแปร high ที่เก็บค่าความสูง และเราต้องการสั่งพิมพ์ข้อความที่ว่า "This table is width ........... feet " ตรงส่วนที่เว้นไว้คือ ให้แสดงค่าความกว้างที่เก็บอยู่ในต้วแปรชื่อ width ดังนั้นเราสามารถสั่งได้โดย printf("This table is width %d feet",width); ในคำสั่งนี้จะเห็นได้ว่าประกอบไปด้วย 2 ส่วนคือส่วนสีแดง และส่วนสีน้ำเงิน มาดูในส่วนสีแดง พบว่ามีสัญลักษณ์ %d ซึ่งกล่าวไว้ตั้งแต่ต้นแล้วว่า เป็นการแทนเลขจำนวนเต็ม เมื่อตัว compile มองมาในคำสั่ง และเห็นตัว %d เข้าแล้ว มันจะไปมองหาตัวแปรในส่วนของสีน้ำเงินทันทีเพื่อทำการเอาค่าจากตัวแปรในสีน้ำเงินมาแสดงทับตัว %d ตัวอย่างเช่น
int width = 6;
printf("This table is width %d feet",width);
เมื่อ Run โปรแกรมแล้วจะแสดงข้อความดังนี้ This table is width 6 feet
ต่อไปถ้าเราต้องการแสดงค่า 2 ค่า เช่น แสดงทั้งความกว้างและความยาวทำได้โดย
int width = 6;
int high =4;
printf("This table is width %d feet and high %d feet",width,high);
เมื่อ compile ตัว compile มองเห็น %d ตัวแรกมันก็จะมองไปหาตัวแปรตัวแรกในส่วนที่สอง(ส่วนสีน้ำเงิน)ทันทีนั่นก็คือ width จากนั้นเมื่อมันเห็น %d ตัวที่สอง มันก็จะมองไปหาตัวแปรตัวที่สองในส่วนที่สอง(ส่วนสีน้ำเงิน)นั่นคือ high ในทันที
ตัวอย่างต่อไป ถ้าต้องการแสดงค่า พื้นที่ของ โต๊ะตัวนี้นั่นก็คือ กว้าง คูณ ยาว เราสามารถสั่งพิมพ์ได้ดังนี้
printf("Area of this table is %d",width*high); ในที่นี้ ส่วนสีน้ำเงินคือ กว้าง*ยาว ถือได้ว่าเป็นค่า 1 ค่า ดังนั้นเมื่อ compiler มองเห็น %d ในส่วนสีแดง ก็จะมองหาค่าค่าแรกในส่วนสีน้ำเงิน นั่นคือ ค่าของ กว้าง*ยาว มาใส่แทน %d ในทันที
โดยคร่าวๆ แล้ว คำสั่ง printf มีการใช้เพียงเท่านี้ แต่ความจริงแล้วยังมีลูกเล่นอีกมากมาย แต่ไม่ขอพูดในที่นี้
ถึงเวลานี้เรารู้จักชนิดของตัวแปร รู้จักการแสดงข้อความออกทางหน้าจอเรียบร้อยแล้ว ต่อไปเราจะมาศึกษากันว่าหากต้องการรับค่าจาก keyboard จะต้องทำอย่างไร