บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Advertisements

Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
ครั้งที่ 9 Function(ต่อ).
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
โครงสร้างโปรแกรมภาษา C
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ตัวแปรประเภทตัวชี้ (Pointer)
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
ข้อมูลชนิดสตริง String บทที่ 8
ข้อมูลชนิดอาร์เรย์ Array (บทที่ 5)
ประเภทของข้อมูลและตัวดำเนินการ Data Types and Operator (บทที่ 3)
Department of Computer Business
พอยน์เตอร์ (Pointer) Chapter Introduction to Programming
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
Data Type part.III.
หลักการโปรแกรม 1 Lecture 3: ตัวแปร, นิพจน์คณิตศาสตร์, การคำนวณทางคณิตศาสตร์,การดำเนินการกับสายอักขระ.
Structure Programming
ชนิดของข้อมูลและตัวดำเนินการ
Structure.
องค์ประกอบของโปรแกรม
Week 6 ประกาศค่าตัวแปร.
บทที่ 3 พื้นฐานการเขียนโปรแกรม Visual Basic
Visual Basic 6 By Samaporn Yendee VB6.
ตัวชี้ P O I N T E R Created By Tasanawan Soonklang
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
Lecture no. 10 Files System
การรับข้อมูลเบื้องต้นโดยใช้ฟังก์ชั่น scanf
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
หน่วยที่ 5 ตัวดำเนินการ (Operators)
Arrays.
บทที่ 12 Structure and union Kairoek choeychuen
C Programming Lecture no. 6: Function.
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 2 ประเภทข้อมูล (DATA TYPE)
ข้อมูลชนิดอาร์เรย์ ประเภทของข้อมูลที่ผ่านมาส่วนใหญ่ในตอนต้นๆจะเป็นข้อมูลเดี่ยว โดยตัวแปรหนึ่งตัวสามารถเก็บข้อมูลได้หนึ่งตัว ถ้าหากต้องการเก็บข้อมูลหลายตัวจะต้องประกาศตัวแปรหลายตัว.
ข้อมูลพื้นฐานและตัวดำเนินการ
อาร์เรย์และข้อความสตริง
การคำนวณทางคณิตศาสตร์ ตัวดำเนินการ
ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นเพื่อเก็บข้อมูลในหน่วยความจำ สามารถเก็บข้อมูลชนิดใดก็ ได้ ลักษณะที่สำคัญ ค่าที่จัดเก็บ เมื่อปิดโปรแกรมข้อมูลจะหายไป.
บทที่ 7 คำสั่งสำหรับเขียนโปรแกรม
ตัวแปรกับชนิดของข้อมูล
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ง30212 พื้นฐานการเขียนโปรแกรม ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ปฏิบัติการครั้งที่ 10 pointer. หน่วยความจำ หน่วยความจำนั้นเสมือนเป็นช่องว่างไว้เก็บ ของที่มีหมายเลขประจำติดไว้ที่แต่ละช่อง เพื่อใช้ในการระบุตำแหน่งของช่องได้
ตัวแปรกับชนิดของข้อมูล
Week 2 Variables.
Week 12 Engineering Problem 2
บทที่ 5 Link List Link List.
การประมวลผลสายอักขระ
การเขียนโปรแกรมประยุกต์ใช้งาน
Computer Programming for Engineers
ความหมาย การประกาศ และการใช้
คำสั่งเกี่ยวกับการรับ และแสดงผล
Output of C.
โครงสร้างข้อมูลแบบรายการโยง (Link List)
บทที่ 9 พอยเตอร์. สื่อชุดนี้เป็นลิขสิทธิ์ของสำนักพิมพ์วังอักษรใช้เพื่อ การศึกษาเท่านั้น พอยเตอร์ (Pointer) พอยเตอร์คือต้นฉบับของชนิดข้อมูล เป็นชนิด ข้อมูลที่สร้างจากข้อมูลมาตรฐานชนิดหนึ่ง.
ตัวแปรและชนิดของข้อมูล (Variables & Data Types)
โครงสร้างข้อมูลแบบลิงก์ลิสต์
การกระทำทางคณิตศาสตร์
ตัวแปร และชนิดข้อมูล.
บทที่ 11 การจัดการข้อมูลสตริง
การเขียนโปรแกรม (ภาษาซี)
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
รูปแบบของการใช้คำสั่ง for for( ตัวแปร = ค่าเริ่มต้น ; นิพจน์ตรรกะ ; ค่าเพิ่มหรือค่าลด ) { statement(s); } ตัวอย่าง กรณีกำหนดการวนซ้ำเป็นค่าคงที่ For(n=1;n
บทที่ 11 พอยเตอร์ C Programming C-Programming. จันทร์ดารา Surin Campus : มีอะไรบ้างในบทนี้  ตัวแปรพอยเตอร์ (Pointer) เป็นตัว แปรที่แปลกและแตกต่างไปจากตัว.
Chapter 9 ตัวชี้ pointer.
ใบสำเนางานนำเสนอ:

บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์ บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์

พอยท์เตอร์ (Pointer) พอยท์เตอร์ คือ ตัวแปรซึ่งเก็บตำแหน่งของอีกตัวแปรหนึ่ง ซึ่งจะมีขนาดตามตำแหน่ง machine และพอยท์เตอร์ต้องชี้ไปยัง type ของข้อมูลที่แน่ชัด เป็นการเข้าถึงข้อมูลแบบ indirectly รูปแบบการประกาศ type *var;

พอยท์เตอร์ (Pointer) (ต่อ) เช่น int *iptr; //เก็บตำแหน่งของตัวแปรอื่นที่เป็น integer char *cptr //เก็บตำแหน่งของตัวแปรอื่นที่เป็น character iptr integer var cptr char var

ตัวดำเนินการ ในภาษาซี ได้มีการกำหนดตัวดำเนินการ 2 ชนิดที่เกี่ยวกับพอยท์เตอร์ ดังนี้ * หมายถึง indirect operator เป็นการประกาศใช้ตัวแปรพอยท์เตอร์นั้นละยังสามารถใช้เพื่อเข้าถึงเนื้อที่ของหน่วยความจำที่ตัวแปรนั้นชี้ & หมายถึง address operator เป็นตัวดำเนินการที่ใช้เพื่อบอกตำแหน่งของตัวแปร แทนที่จะเป็นค่าที่เก็บข้อมูล

ตัวดำเนินการ (ต่อ) ตัวอย่าง เช่น char *ptr = NULL; เป็น declaration : ทำการจองเนื้อที่ให้ตัวแปรพอยท์เตอร์ชื่อ ptr และชี้ไปยัง NULL *ptr = NULL; เป็น executable code : การให้ค่า NULL แก่หน่วยความจำตำแหน่งที่ ptr ชี้ไป

ตัวอย่าง 11.1 โปรแกรมที่ใช้พอยท์เตอร์ main() { int num = 3; int *ptr; ptr =# printf(“The value of num is %d. Its address is %lu.”,*ptr,(long)ptr); }

ผลลัพธ์ของตัวอย่าง 11.1 ผลลัพธ์ >The value of num is 3. Its address is 448925078. หมายเหตุ ค่าตำแหน่งของตัวแปรไม่แน่นอนในแต่ละครั้งของการสั่งดำเนินการ

คำอธิบายโปรแกรม Declaration: int num = 3; int *ptr; num int var ptr Executable code: ptr = # 3 3

ตัวอย่าง 11.2 โปรแกรมที่ใช้พอยท์เตอร์ main() { static int number[6] = {1,2,3,4,5,6}; int i,*ptr; for(i=0;i<6;i++) { ptr = &number[i]; printf(“%d\n”,*ptr); }

ผลลัพธ์โปรแกรมตัวอย่าง 11.2 3 4 5 6 หมายเหตุ ถ้าเราประกาศ int *ptr;เราสามารถให้ ptr ชี้ไปยังอาร์เรย์ได้ดังนี้ ptr = number; หรือ ptr = &number[0];

อธิบายโปรแกรม 11.2 1 2 3 4 5 6 number i = 0; ptr 1 2 i = 1; 3 i = 2; 4 1 2 3 4 5 1 2 3 4 5 6 ptr

ตัวอย่าง 11.3 ฟังก์ชันที่ทำการคำนวณบนตัวชี้ int strlen(s) char *s; { char *p = s; while(*p != ‘\0’) p++; return (p-s); }

คำอธิบายฟังก์ชันตัวอย่าง 11.3 เป็นฟังก์ชันที่ใช้คำนวณหาความยาวของ string โดย string ที่ต้องการหาความยาวได้มาจากการผ่านค่าตำแหน่งของ string มาทางรายการอาร์กิวเมนต์ของฟังก์ชัน S A B C D E F \0 P สิ้นสุดความยาว = P-S

อาร์เรย์ของพอยท์เตอร์ ในภาษาซี สามารถที่จะมีอาร์เรย์ที่เป็นพอยท์เตอร์เช่นเดียวกับมีอาร์เรย์ที่เป็นข้อมูลชนิดอื่นๆได้ เช่น int *parray[10]; parray[0] parray[1] parray[2] . parray[9] int.var

ตัวอย่าง 11.4 โปรแกรมอาร์เรย์ของพอยท์เตอร์ main() { int j,n1=1;n2=2;n3=3;*ptr,*parray[4]; parray[1] = &n1; parray[2] = &n2; ptr = &n3; parray[3] = ptr; for(j=1;j<4;j++) printf(“%d\n”,*parray[j]); }

ผลลัพธ์ของโปรแกรมตัวอย่าง 11.4 เป็นโปรแกรมที่ใช้อาร์เรย์เก็บค่าตำแหน่งของ int var จะได้ผลลัพธ์ดังนี้ 1 2 3

คำอธิบายโปรแกรม declaration int n1=1,n2=2,n3=3,*ptr, *parray[4] executable code n1 n2 n3 n1 n2 n3 1 2 3 1 2 3 parray parray [0] [1] [2] [3] ptr [0] [1] [2] [3] ptr

อาร์เรย์ของพอยท์เตอร์บนตัวอักษร เราสามารถใช้อาร์เรย์ของพอยท์เตอร์บนตัวอักษร ซึ่งกำหนดค่าเริ่มต้นไปยัง string ที่มีความยาวต่างกันได้ และแต่ละตัว string ใช้เนื้อที่ตามที่ต้องการเท่านั้น ซึ่งจะแสดงได้ดังโปรแกรมตัวอย่างถัดไปซึ่งจะรับค่าหมายเลขเดือน แล้วแสดงชื่อเดือนนั้นทางหน้าจอ

ตัวอย่าง 11.5 อาร์เรย์ของพอยท์เตอร์บนตัวอักษร Char *month(n) Int n; { static char *name []= { “illegal month”,“January”, “February”,“March”,“April”,“May”,“June”,“July”, “August”,“September”, “October”,“November”, “December”}; return((n<1 || n>12)?name[0]: name[n];) } char *month(); main() { int num; puts(“Enter number of month”); scanf(“%d”,num); printf(“The name of month is %s”,month(num)); }

ผลลัพธ์ของโปรแกรมตัวอย่าง 11.5 Enter number of month > 6 The name of month is June

คำอธิบายโปรแกรม name[0] name[1] name[2] name[12] illegal month January February . December