สอน Pointer ภาษา C : บทที่ 3 Pointer คืออะไร ในภาษา C และ & (Ampersand Operator) และ sizeof < ติวสรุป >

บทเรียนออนไลน์ #389
เขียนโดย :
มีผู้อ่าน : 220 คน วันนี้ : 5 คน

สวัสดีครับ มาถึงบทที่ 3 ในบทนี้เราจะนำ ทฤษฏีในบทที่แล้ว มาทำการทดลองด้วย ภาษา C กันดู ว่าสิ่งที่เราเรียนรู้กันมาใน 2 บทแรกนั้น พอเขียน Source Code ภาษา C จริงๆ แล้ว ผลลัพธ์มันจะเป็นแบบที่เราเข้าใจไหม ทั้งเรื่อง Memory Address , Data , Data Type , Variables

โดยผมจะเขียนในโปรแกรม Dev-C++ ซึ่งเป็น Editor ตัวหนึ่งที่ใช้ในการเขียนภาษา C ถ้าใครอยากติดตั้งก็ตามลิ้งนี้ ได้เลยครับ หรือ จะใช้พวก Editor Online ทดสอบก็ได้นะ ได้ผลหลักการเดียวกัน ! 

 

 

 

Copy Source Code

#include <stdio.h>

 

int main()

{

     int a = 1;

     float b = 2.0;

     char c = 'C';
 

     printf("Data in Variable a : %d",a);

     printf("Size of Variable a : %zu",sizeof(a));

     printf("Size of Variable int : %zu",sizeof(int));

     printf("Address of Variable a : %p", &a);
 

     printf("Data in Variable b : %f",b);

     printf("Size of Variable b : %zu",sizeof(b));

     printf("Size of Variable float : %zu",sizeof(float));

     printf("Address of Variable b : %p", &b);
 

     printf("Data in Variable c : %c",c);

     printf("Size of Variable c : %zu",sizeof(c));

     printf("Size of Variable char : %zu",sizeof(char));

     printf("Address of Variable c : %p", &c);
 

     return 0;

}

 

 

 

ผลการ Run ด้วย Dev-C++ ในคอม
 

สอน Pointer ภาษา C : บทที่ 3 Pointer คืออะไร ในภาษา C และ & (Ampersand Operator) และ sizeof < ติวสรุป >

 

 

 

ผลการ Run ด้วย Editor Online ใน Web
 

สอน Pointer ภาษา C : บทที่ 3 Pointer คืออะไร ในภาษา C และ & (Ampersand Operator) และ sizeof < ติวสรุป >

 

 

 

อธิบาย Source Code เพิ่มเติม

printf("Data in Variable a : %d",a);
//แสดงผล ค่าในตัวแปร a

printf("Size of Variable a : %zu",sizeof(a));
// Function sizeof(ตัวแปร) ใช้สำหรับ หาขนาดของตัวแปรว่าตัวแปรนั้นกี่ Bytes ใช้ %zu ในการแสดงผล

printf("Size of Variable int : %zu",sizeof(int));
// Function sizeof(ตัวแปร) ใช้สำหรับ หาขนาดของตัวแปรว่าตัวแปรนั้นกี่ Bytes ใช้ %zu ในการแสดงผล

printf("Address of Variable a : %p", &a);
// & Ampersand Operator ถ้าใส่หน้าตัวแปร จะเป็นการดึง Address ของตัวแปรนั้นออกมา ! ใช้ %p ในการแสดงผล

 

 

 

 

ลองดูค่าต่างๆ ทั้ง ขนาดของชนิดข้อมูล (Data Type) และ Memory Address เปรียบเทียบด้วยรูปภาพ

สอน Pointer ภาษา C : บทที่ 3 Pointer คืออะไร ในภาษา C และ & (Ampersand Operator) และ sizeof < ติวสรุป >

สอน Pointer ภาษา C : บทที่ 3 Pointer คืออะไร ในภาษา C และ & (Ampersand Operator) และ sizeof < ติวสรุป >

สอน Pointer ภาษา C : บทที่ 3 Pointer คืออะไร ในภาษา C และ & (Ampersand Operator) และ sizeof < ติวสรุป >

 

 

สรุป 5 เรื่อง ? จากการทดลองนี้ เรารู้อะไรบ้าง ?

1) เราใช้ sizeof(ตัวแปร) หรือ sizeof(ชนิดข้อมูล) ในการหาว่ามีขนาดกี่ Bytes

2) เราใช้ & (Ampersand Operator) เพื่อดึง Memory Address ของตัวแปรได้

3) การเรียงลำดับกันของตัวแปรในหน่วยความจำ ทั้งในทฤษฏี ทั้งในคอม ทั้งใน Web สังเกตได้ว่า มีความต่างกัน แต่ประเด็นหลักของหัวข้อนี้คือ การใช้ sizeof() ดึงขนาด และ การใช้ & ดึง Memory Address เพื่อให้ดูว่ามันเก็บใน Memory จริง และมี Address จริงตามที่เราได้รู้มาใน 2 บทแรก ! 

4) เรา print ค่าจาก sizeof() ได้ด้วย %zu และ ค่าจาก & ได้ด้วย %p

5) Memory Address ที่เราดึงออกมานี่แหละ จะเกี่ยวกับ Pointer

 

เอาล่ะครับ บทนี้เป็นยังไงกันบ้าง มีใครหลุดไปบ้างรึยัง ? นี่คือจุดเริ่มต้นก่อนที่จะไปเรื่องของ Pointer อย่างจริงจังแล้วล่ะ ! ถ้าไม่เข้าใจตรงไหนก็ลองเข้ามาสอบถามใน Page  https://www.facebook.com/tutortongpage ได้เลยครับ

ส่วนถ้าใครสนใจเรียนเขียนโปรแกรม ภาษา C , C++ , Python หรืออื่นๆ ทั้งแบบออนไลน์คลิป และ ออนไลน์สด จะเรียนพื้นฐาน หรือ ติวสอบ สามารถสอบถามเข้ามาใน Page ได้เช่นกันครับ

เขียนโปรแกรม ไม่ยาก ถ้าเข้าใจหลักการทำงาน !

แหล่งข้อมูลอ้างอิง