TiMe

Get this widget | Track details | eSnips Social DNA

ฟังวิทยุออนไลน์ ที่ izeemusic

ฟังวิทยุออนไลน์ ที่ izeemusic

วันเสาร์ที่ 11 กรกฎาคม พ.ศ. 2552

DtS 3-1/7/52

สรุป Pointer เป็นตัวแปรชนิดหนึ่งที่ทำหน้าที่เก็บตำแหน่งของที่ อยู่(Address) ของตัวแปรที่อยู่ในหน่วยความจำ
รูปแบบของมันก็จะมีลักษณะ Type *variable-name คือ Type = ชนิดของตัวแปร // ส่วน * = เป็นเครื่องหมายที่แสดงว่าตัวแปรที่ตามหลังเครื่องหมายนี้เป็นตัวแปรพ้อยเตอร์ //variable-name = เป็นตัวแปรที่ประกาศว่าเป็นชนิดพ้อยเตอร์

ตัวอย่างเช่น count100 Address2000 คือณ ตำแหน่งที่2000 countมีค่าเท่ากับ100
สตริง (String)หรือสตริงของอักขระ (Character String) เป็นข้อมูลที่ประกอบไปด้วย ตัวอักษร อักขระ ตัวเลข
ความยาวของสตริง จะถูกกำหนดโดยขนาดของสตรีง ต้องจองเนื้อที่ให้กับ(\0) ด้วย
การกำหนดค่าให้กับสตริงนั้นให้ใช้เครื่องหมาย Double quote("")
ถ้าสมมุติต้องการสตริงสำหรับข้อมูลยาวไม่เกิน10อัขระต้องกำหนดขนาดอะเรย์11ช่อง เพื่อเก็บ null character(\0) ด้วย

แบบฝึกหัด ท้ายบทที่2
1.ให้นักศึกษากำหนดค่าของ Array1มิติ และ Array2มิติ
ตอบ ตัวอย่าง Array 1 มิติ

#include "stdio.h"
#include "conio.h"
main()
{
int a[3];
clrscr();
a[0] = 1;
a[1] = 5;
a[2] = 2;
printf("a[0] = %d\n",a[0]);
printf("a[1] = %d\n",a[1]);
printf("a[2] = %d\n",a[2]);
}

ตัวอย่าง Array 2 มิติ
Array 2 มิติ
พิจราณาตารางที่ 2 ซึ่งแสดงจำนวนของนักศึกษาในชั้นปีต่างๆ ของคณะ วิทยาศาสตร์ วิศวกรรมศาสตร์ อักษรศาสตร์ รัฐศาสตร์ และบัญชี ข้อมูลในตารางดังกล่าว จะต้องใช้กับ Array 2 มิติ

ตารางที่ 2 จำนวนนักศึกษาของคณะต่างๆ
คณะ ชั้นปี
1 2 3 4
วิทยาศาสตร์ 200 175 175 175
วิศวกรรมศาสตร์ 400 390 385 385
อักษรศาสตร์ 150 150 150 150
รัฐศาสตร์ 100 100 98 98
บัญชี 200 200 195 195

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
main()
{
char student[4];
int num_student[5][4],i,j;
char fac[20];
clrscr();
for(i=0;i<=4;++i){ printf("Faculty : "); gets(fac); for(j=0;j<=3;++j){ printf("student[%d][%d] = ",i,j); gets(student); num_student[i][j] = atoi(student); } } } 2.ให้นักศึกษาหาค่าของ A[2],A[6]จากค่า A={2,8,16,24,9,7,3,8} ตอบ
A[2]= 16, A[6]= 3

3.จากค่าของ int a[2][3]={{6,5,4},{3,2,1}};ให้นักศึกษา หาค่าของ a[1][0]และ a[0][2]
ตอบ
a[1][0] = 3, a[0][2]= 4

4.ให้นักศึกษากำหนด Structure ที่มีค่าของข้อมูลจากน้อย 6 Records
ตอบ
#include"stdio.h"
struct Data Student
{
char name[];
char surname[10];
char lastname;
int age;
int id;
int junior;
}data_s;
void input_data()
{
printf("Data Student\n");
printf("Name :");
scanf("%s",&data_s.name);
printf("surname: ");
scanf("%s",&data_s.surname);
printf("Last Name");
scanf("%s",&data_s.lastname);
printf("Age : ");
scanf("%d",&data_s.age);
printf("Id: ");
scanf("%d",&data_s.id);
printf("Junior :");
scanf("%d",&data_s.junior);

}
void show_data()
{
printf("\n\nData you\n");
printf("Name is %s\n",data_s.name);
printf("Sur Name is %s\n",data_s.surname);
printf("Lastname is %s\n",data_s.lastname);
printf("Age is %d\n",data_s.age);
printf("Id is %d\n",data_s.id);
printf("Junior is %d\n",data_s.junior);
printf("Thank You Student so cute!!");
}
main()
{
input_data();
show_data();
}

5.ให้นักศึกษาบอกความแตกต่างของการกำหนดตัวชนิด Array กับ ตัวแปร Pointer ในสภาพของการกำหนดที่อยู่ของข้อมูล
ตอบ
ความแตกต่างระหว่างตัวแปร Array และ Pointer คือตัวแปรArrayชุดที่ใช้เก็บตัวแปรชนิดเดียวกันไว้ด้วยกัน เช่น เก็บ ข้อมูล char ไว้กับ char เก็บ int ไว้กับ int ไม่สามารถเก็บข้อมูลต่างชนิดกันได้ เช่น char กับ int เรียก array อีกอย่างว่าหน่วยความจำแบ่งเป็นช่อง การกำหนดสมาชิกชิกของ array จะเขียนภายในเครื่องหมาย [ ]
แต่ ตัวแปรพอยเตอร์จะเก็บเฉพาะค่าตำแหน่ง Address ตัวแปรเท่านั้นและดัชนีที่ เก็บค่าตำแหน่งแอดเดรสของหน่วยความจำ ซึ่งตัวแปรพอยเตอร์นั้น จะมีเครื่องหมายดอกจันทร์ (*) นำหน้าเสมอ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น