งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

หน่วยที่ 3 แอเรย์และ พอยน์เตอร์. ข้อมูลดิจิตอล บิท (Bit) หน่วยความจำที่ย่อยที่สุดของคอมพิวเตอร์คือการ เปิด / ปิด (‘On’ /‘Off ’ ) มักจะเขียน 1 แทน ‘On’

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "หน่วยที่ 3 แอเรย์และ พอยน์เตอร์. ข้อมูลดิจิตอล บิท (Bit) หน่วยความจำที่ย่อยที่สุดของคอมพิวเตอร์คือการ เปิด / ปิด (‘On’ /‘Off ’ ) มักจะเขียน 1 แทน ‘On’"— ใบสำเนางานนำเสนอ:

1 หน่วยที่ 3 แอเรย์และ พอยน์เตอร์

2 ข้อมูลดิจิตอล บิท (Bit) หน่วยความจำที่ย่อยที่สุดของคอมพิวเตอร์คือการ เปิด / ปิด (‘On’ /‘Off ’ ) มักจะเขียน 1 แทน ‘On’ และ 0 แทน ‘Off’ เป็นหน่วยที่เล็กที่สุดของข้อมูลในคอมพิวเตอร์ที่เรียกว่า “ บิท ” (Bit)

3 ข้อมูลดิจิตอล ไบท์ (Byte) ข้อมูลในคอมพิวเตอร์จะถูกมองทีละ 8 บิท เช่น ‘10111010’ เป็นต้น ข้อมูลที่เรียงกัน 8 บิทนี้ เรียกว่า ไบท์ (Byte)

4 ข้อมูลดิจิตอล ข้อมูลชิ้นหนึ่งอาจประกอบด้วยหลายๆไบท์ ตัวอย่างเช่นข้อมูลไบท์หนึ่ง มีค่า ‘00000110’ อาจมองว่าเป็นจำนวน 6 หรือเป็นตัวอักษร ‘B’ ก็ได้

5 ตัวเลขและการคำนวณ ตัวเลขฐานสอง (Binary) ประกอบด้วยตัวเลข 0,1 ตัวเลขฐานสิบ (Decimal) ประกอบด้วยตัวเลข 0,1,2,3,4,5,6,7,8,9 ตัวเลขฐานแปด (Octal) ประกอบด้วยตัวเลข 0,1,2,3,4,5,6,7 ตัวเลขฐานสิบหก (Hexadecimal) ประกอบด้วยตัวเลข 0,1,2,3,4,5,6,7, 8, 9, A, B, C, D, E, F

6 ตัวเลขฐานสอง ตัวเลขฐานสองจำนวนหนึ่งไบต์ แทนค่า 0 ถึง 255 ฐานสิบ แสดงให้เห็นดังนี้ ฐานสิบฐานสอง 000000000 100000001 200000010 300000011 400000100 500000101........... 25511111111

7 การแปลงตัวเลขฐานสองเป็นฐานสิบ เอาตัวเลขฐานสองแต่ละหลักคูณด้วย 2 หลัก แล้วเอาทั้งหมดมาบวกกัน เช่น (10010110) 2 = (1 * 2 7 ) + (0 * 2 6 ) + (0 * 2 5 ) + (1 * 2 4 ) + (0 * 2 3 ) + (1 * 2 2 ) + (1 * 2 1 ) + (0 * 2 0 ) = 128 + 0 + 0 + 16 + 0 + 4 + 2 + 0 = 150 10

8 การแปลงตัวเลขฐานสิบเป็นฐานสอง เอาตัวเลขฐานสิบหารด้วย 2 ลงไปเรื่อยๆ แล้วเก็บเศษมาต่อกันย้อนหลัง เช่น 150 10 / 2 = 75 เศษ 0 75 10 / 2 = 37 เศษ 1 37 10 / 2 = 18 เศษ 1 18 10 / 2 = 9 เศษ 0 9 10 / 2 = 4 เศษ 1 4 10 / 2 = 2 เศษ 0 2 10 / 2 = 1 เศษ 0 1 10 / 2 = 0 เศษ 1 ดังนั้น 150 10 = 10010110 2

9 ตัวเลขฐาน 16 ตัวเลขฐาน 16 ประกอบด้วยตัวเลข 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F โดย A – F แทนค่า 10 – 15 ตัวเลขฐาน 16 หนึ่งตัวใช้แทนเลขฐานสอง 4 บิต 00000 10001 20010 30011 40100 50101 60110 70111 81000 91001 A1010 B1011 C1100 D1101 E1110 F1111 ฐาน 16 ฐาน 2

10 ตัวเลขฐาน 16 และฐาน 2 ตัวเลขฐาน 16 สองตัวใช้แทนเลขฐานสอง 1 ไบต์ ฐาน 16 ฐาน 2 30 0011 0000 AE 1010 1110 F5 1111 0101

11 การแทนค่าตัวอักษร ในการแทนค่าตัวอักษรแต่ละตัวด้วยหนึ่งไบท์ ซึ่งกำหนดไว้ว่า ‘A’ มีรหัสเป็น ‘01000001’ ‘B’ มีรหัสเป็น ‘10000010’ ไปเรื่อยๆ ถ้าคุณชื่อว่า ‘SAM’ ข้อมูลสามไบท์ที่ใช้แทนชื่อของคุณในคอมพิวเตอร์ก็จะเป็น 1010011, 10000001, 01001101 รหัสนี้มีชื่อเรียกว่า American Standard Code for Information หรือ ASCII

12 รหัส ASCII HEXDECASCIIHEXDECASCIIHEXDECASCIIHEXDECASCII 000NULL2032(SP) 4064@ 6096` 011 SOH 2133!4165A6197a 022STX2234"4266B6298b 033ETX2335#4367C6399c 044EOT2436$4468D64100d 055ENQ2537%4569E65101e 066ACK2638&4670F66102f 077BEL2739'4771G67103g 088BS2840(4872H68104h 099HT2941)4973I69105i 0A10LF2A42*4A74J6A106j 0B11VT2B43+4B75K6B107k 0C12FF2C44,4C76L6C108l 0D13CR2D45-4D77M6D109m 0E14SO2E46.4E78N6E110n 0F15SI2F47/4F79O6F111o 1016DLE304805080P70112p 1117DC1314915181Q71113q 1218DC2325025282R72114r

13 หน่วยความจำของคอมพิวเตอร์ จะแบ่งออกเป็นช่องๆ แต่ละช่องจะมีหมายเลขประจำช่อง เรียกว่า Address ( เปรียบเหมือนบ้านเลขที่ ) แต่ละช่องจะเก็บข้อมูลได้หนึ่งไบต์ ข้อมูลหนึ่งค่าอาจเก็บข้อมูล หลายไบต์ 10A100 A101 KA102 5.7A103 A104 A105 A106 AA107 BA108 \0A109 A110 A111 A112 A113 A114 A115 A116 A117.......... A118 A119...

14 การเก็บข้อมูลชนิดต่างๆในหน่วยความจำ int long int char float double ตัวเลขจำนวนเต็ม ตัวอักษร เลขทศนิยม 2 ไบต์ 4 ไบต์ 1 ไบต์ 4 ไบต์ 8 ไบต์

15 ความหมายของพอยน์เตอร์ พอยน์เตอร์ ใช้หน่วยความจำ 4 ไบต์ เก็บข้อมูลประเภทที่ใช้ชี้ตำแหน่งของหน่วยความจำ (memory address) ซึ่งเก็บค่าของตัวแปรตัวอื่นอยู่

16 การประกาศตัวแปรพอยน์เตอร์ ชนิด * ชื่อตัวแปรพอยน์เตอร์ ; int i=10; char c='K'; float e=5.7; char mc[3]="AB"; char *ca; int *ia; i10A100 A101 c‘K’A102 e5.7A103 A104 A105 A106 mc[0]‘A’A107 mc[1]‘B’A108 mc[2]‘\0’A109 caA110 A111 A112 A113 iaA114 A115 A116 A117.......... A118 A119...

17 การกำหนดค่าให้พอยน์เตอร์ ca = &c; ค่าที่จะกำหนดให้กับพอยน์เตอร์ ควรเป็นค่าแอดเดรสของตัวแปร โดยใช้เครื่องหมาย & ia = &i;

18 การใช้พอยน์เตอร์ การใช้ข้อมูลในแอดเดรสที่พอยน์เตอร์ชี้อยู่ ทำได้โดยใช้เครื่องหมายสตาร์ * ตัวอย่างเช่น จากคำสั่งเหล่านี้ ia = &i; /* กำหนดให้ ia ชี้ไปยังตำแหน่งของ i */ printf("Value of i is %d\n", i); /* สั่งให้พิมพ์ค่าของ i */ printf("Value of ia is %d\n", ia);/* สั่งให้พิมพ์ค่าของ ia ซึ่งชี้ตำแหน่งของ i */ printf("Value pointed by ia is %d\n", *ia); /* สั่งให้พิมพ์ค่าในตำแหน่งที่ ia ชี้อยู่ */ สิ่งที่พิมพ์ออกมาจะเป็น Value of i is 10 Value of ia is A100 Value pointed by ia is 10

19 จากคำสั่งเหล่านี้ ca = &c; /* กำหนดให้ ca ชี้ตำแหน่งของ c */ printf(“Value of c is %c”, c); /* พิมพ์ค่าของ c */ printf(“Value of ca is %d”, ca);/* พิมพ์ค่าของ ca ซึ่งชี้ตำแหน่งของ c */ printf(“Value pointed by ca is %c”, *ca); /* พิมพ์ค่าในตำแหน่งที่ ca ชี้ */ Value of c is K Value of ca is A102 Value pointed by ca is K สิ่งที่พิมพ์ออกมาจะเป็น

20 /* A program to show the use of pointers */ #include main() { int i=10; /* i is an integer */ char c='K'; /* c is a character */ float e=5.7; /* e is a float number */ char me[3]="AB"; /* me is an array of char */ char *ca; /* ca is a pointer to char */ int *ia; /* is is a pointer to int */ ia = &i; printf("Value of i is %d\n", i); printf("Value of ia is %p\n", ia); printf("Value pointed by ia is %d\n", *ia); ca = &c; printf("Value of c is %c\n", c); printf("Value of ca is %d\n", ca); printf("Value pointed by ca is %c\n", *ca); } Value of i is 10 Value of ia is 100 Value pointed by ia is 10 Value of c is K Value of ca is 102 Value pointed by ca is K

21 พอยน์เตอร์กับแอเรย์ ชื่อแอเรย์นั้นจะถือว่าเป็นแอดเดรสอยู่แล้ว char mc[3]= "AB";/* ตัวแปร mc เป็น array ของ char */ printf("%c", mc[0]); /* พิมพ์ค่าของ mc[0] */ printf("%d", mc); /* พิมพ์ค่าของ mc ซึ่งคือ address ของตำแหน่งแรก ของแอเรย์ */ printf("%d", &mc[0]); /* พิมพ์ค่าของ address ของตำแหน่งแรกของแอเรย์ */ printf("%c", *mc); /* พิมพ์ค่าในตำแหน่งที่ mc ชี้อยู่ */ A 107 A

22 /* A program to show the use of pointers */ #include main() { int i=10; char c='A'; float e=5.7; char mc[3]="AB"; char *ca; int *ia; printf("Value of mc[0] is %c\n", mc[0]); printf("Value of mc is %d\n", mc); printf("Value of &mc[0] is %d\n", &mc[0]); printf("Value pointed by mc is %c\n", *mc); } Value of mc[0] is A Value of mc is 107 Value of &mc[0] is 107 Value pointed by mc is A

23 ชื่อแอเรย์เป็นแอดเดรสอยู่แล้ว หากต้องการกำหนดให้ตัวแปรพอยน์เตอร์ชี้แอเรย์ จึงไม่จำเป็นต้องใช้เครื่องหมาย & เช่น ca = mc; หรืออาจใช้เครื่องหมาย & ก็ได้ แต่ต้องใช้กับสมาชิกตัวหนึ่งเลย เช่น ca = &mc[0];

24 และเมื่อกำหนดให้ ca มีค่าเท่ากับ mc แล้ว ก็สามารถจะใช้ ca แทน mc ได้ กล่าวคือ ca มีค่าเท่ากับ mc *ca คือ ca[0] คือ mc[0] *(ca+1) คือ ca[1] คือ mc[1] *(ca+2) คือ ca[2] คือ mc[2] หรืออาจจะใช้ ca ในรูปของแอเรย์เลยก็ได้ โดยที่ ca[0] คือ mc[0] ca[1] คือ mc[1] ca[2] คือ mc[2]

25 /* A program to show the use of pointers */ #include main() { int i=10; /* i is an integer */ char c='A'; /* c is a character */ float e=5.7; /* e is a float number */ char mc[4]="ABC"; /* mc is an array of char */ char *ca; /* ca is a pointer to char */ int *ia; /* ia is a pointer to int */ printf("Value of mc[0] is %c\n", mc[0]); printf("Value of mc[1] is %c\n", mc[1]); printf("Value of mc[2] is %c\n", mc[2]); ca = mc; printf("Value of ca[0] is %c\n", ca[0]); printf("Value of ca[1] is %c\n", ca[1]); printf("Value of ca[2] is %c\n", ca[2]); printf("Value pointed by *ca is %c\n", *ca); printf("Value pointed by *(ca+1)is %c\n", *(ca+1)); printf("Value pointed by *(ca+2)is %c\n", *(ca+2)); } Value of mc[0] is A Value of mc[1] is B Value of mc[2] is C Value of ca[0] is A Value of ca[1] is B Value of ca[2] is C Value pointed by *ca is A Value pointed by *(ca+1)is B Value pointed by *(ca+2)is C

26 /* A program to show the use of pointers */ #include float average ( int a, int b ) { return ( (a+b)/2.0 ); } main() { int n1=1, n2=2; float av; av = average(n1,n2); printf("Average of %d and %d is %0.1f\n", n1, n2, av); } Average of 1 and 2 is 1.5 Call-by-Value - ฟังก์ชั่นส่งกลับได้เพียงหนึ่งค่า

27 /* A program to show the use of pointers */ #include float average ( int a, int b ) { printf("Give me two integers : "); scanf("%d %d", &a, &b); return ( (a + b)/2.0 ); } /* Main Function */ main() { int n1=1, n2=1; float av; av = average(n1,n2); printf("Average of %d and %d is %0.1f\n", n1, n2, av); } Give me two integers : 5 26 Average of 1 and 1 is 15.5 ตัวแปรค่าaddress (main) 11 A100 A101 n21 A102 A103 av15.5 A104 A105 A106 A107 (average) a1 5 A108 A109 b1 26 A110 A111

28 ฟังก์ชั่นที่ส่งกลับได้หลายค่าด้วยพอยน์เตอร์ /* A program to show the use of pointers */ #include float average ( int *a, int *b ) { printf("Give me two integers : "); scanf("%d %d", a, b); return ( (*a + *b)/2.0 ); } /* Main Function */ main() { int n1=1, n2=1; float av; av = average(&n1,&n2); printf("Average of %d and %d is %0.1f\n", n1, n2, av); } Give me two integers : 5 26 Average of 5 and 26 is 15.5 ตัวแปรค่าaddress n11 5 A100 A101 n21 26 A102 A103 av15.5 A104 A105 A106 A107 aA100 A108 A109 A110 A111 bA102 A112 A113 A114 A115

29 แอเรย์กับฟังก์ชั่นแบบส่งค่ากลับทางพารามิเตอร์ /* A program to show the use of pointers */ #include int FindMaxScore ( int Score[], int NumberOfStudents) { int MaxScore = -1; int i; for (i=0; i< NumberOfStudents; i++) if (Score[i] > MaxScore) MaxScore = Score[i]; return(MaxScore); } main() { int TotalScore[5] = {17, 18, 19, 16, 20}; int NumberOfStudents = 5, MaxTotalScore; MaxTotalScore = FindMaxScore( TotalScore, NumberOfStudents); printf("The maximum total score is %d\n", MaxTotalScore); } The maximum total score is 20

30 /* A program to show the use of pointers */ #include void GetInput(int Score[], int *N) { int i; printf("How many students: "); scanf("%d", N); /*can also write scanf("%d", &*N) */ for (i=0; i< *N; i++) { printf("Enter Score for student %d : ", i+1); scanf("%d", &Score[i]); } int FindMaxScore ( int Score[], int NumberOfStudents) { int MaxScore = -1, i; for (i=0; i< NumberOfStudents; i++) if (Score[i] > MaxScore) MaxScore = Score[i]; return(MaxScore); } main() { int TotalScore[5]; int NumberOfStudents, MaxTotalScore; GetInput(TotalScore, &NumberOfStudents); MaxTotalScore = FindMaxScore( TotalScore, NumberOfStudents); printf("The maximum total score is %d\n", MaxTotalScore); } How many students: 5 Enter Score for student 1 : 80 Enter Score for student 2 : 90 Enter Score for student 3 : 100 Enter Score for student 4 : 50 Enter Score for student 5 : 60 The maximum total score is 100 TotalScore[0]80A100 A101 TotalScore[1]90A102 A103 TotalScore[2]100A104 A105 TotalScore[3]50A106 A107 TotalScore[4]60A108 A109 NumberOfStudents5A110 A111 MaxTotalScore100A112 A113

31 1. เครื่องหมาย & หน้าตัวแปร หมายถึงแอดเดรสของตัวแปรนั้น int *p; int i = 50; p = &i; ตัวแปรค่า Address pA204A200 A201 A202 A203 i50A204 A205

32 2. เครื่องหมาย * หน้านิพจน์ หมายถึงข้อมูลในแอดเดรสนั้น x = 3 หมายถึงการเอาค่า 3 มาใส่ลงในหน่วยความจำของตัวแปร x โดยตัวแปร x ต้องเป็นตัวแปรธรรมดา ตัวแปรค่า Address x3A200 A201 int x; x = 3;

33 2. เครื่องหมาย * หน้านิพจน์ หมายถึงข้อมูลในแอดเดรสนั้น *x = 3 หมายถึงการเอาค่า 3 มา แต่ไม่ได้ใส่ลงในหน่วยความจำของตัวแปร x แต่กระโดดไปยังหน่วยความจำแอดเดรสที่เก็บอยู่ในตัวแปร x และใส่ค่า 3 ลงไป โดยตัวแปร x ต้องเป็นพอยน์เตอร์ ตัวแปรค่า Address xA204A200 A201 A202 A203 n3A204 A205 int *x, n; x = &n; *x = 3;

34 2. เครื่องหมาย * หน้านิพจน์ หมายถึงข้อมูลในแอดเดรสนั้น y = x จะหมายถึงการเอาค่าของ x มา ใส่ลงในตำแหน่งของหน่วยความจำของตัวแปร y ตัวแปรค่า Address x3A200 A201 y3A202 A203 int x,y; x = 3; y = x;

35 2. เครื่องหมาย * หน้านิพจน์ หมายถึงข้อมูลในแอดเดรสนั้น y = *x ไม่ได้หมายถึงการเอาค่าของตัวแปร x มา แต่เป็นการเอาแอดเดรสใน x ออกมา แล้วกระโดดไปยังหน่วยความจำตำแหน่งนั้น แล้วเอาค่าออกมา นำไปใส่ให้กับหน่วยความจำของตัวแปร y ตัวแปรค่า Address xA206A200 A201 A202 A203 y3A204 A205 n3A206 A207 int *x,y, n; n = 3; x = &n; y = x;

36 3. การใช้ชื่อของแอเรย์ เช่น Scores หมายถึงแอดเดรสเริ่มตั้นของแอเรย์นั้น ซึ่งก็สามารถจะเทียบได้กับ &Scores[0] 4. การกำหนดพารามิเตอร์ของฟังก์ชั่นเป็นแอเรย์ เช่น int Assignment[] มีความหมายเดียวกับ int *Assignment.

37 5. ในการคำนวณตำแหน่งของพอยน์เตอร์ต้องนับไปเท่ากับ จำนวนไบต์ที่เก็บข้อมูประเภทนั้น เช่น int *x หมายถึง x เป็นพอยน์เตอร์ของชนิด int ดังนั้น x + 3 จะมีผลลัพธ์เป็นการบวก 6 เข้ากับ x ไม่ใช่บวก 3 เพราะ int มีขนาดเป็น 2 ไบท์ เราจึงต้องบวก 3*2 = 6 เช่นเดียวกัน x[3] ก็หมายถึง *(x + 3) หรือค่าในแอดเดรส x + 6 ตัวแปรค่า Address *x5A200 A201 *(x+1)3A202 A203 *(x+2)7A204 A205 *(x+3)1A206 A207 *(x+4)9A208 A209 int x[5] = {5,3,7,1,9};

38 5. ในการคำนวณตำแหน่งของพอยน์เตอร์ต้องนับไปเท่ากับ จำนวนไบต์ที่เก็บข้อมูประเภทนั้น เช่น float *x หมายถึง x เป็นพอยน์เตอร์ของชนิด float ดังนั้น x + 3 จะมีผลลัพธ์เป็นการบวก 12 เข้ากับ x ไม่ใช่บวก 3 เพราะ float มีขนาดเป็น 4 ไบท์ เราจึงต้องบวก 3*4 = 12 เช่นเดียวกัน x[3] ก็หมายถึง *(x + 3) หรือค่าในแอดเดรส x + 12 ตัวแปรค่า Address *x1.5A200 to A203 *(x+1)3.9A204 to A207 *(x+2)7.2A208 to A211 *(x+3)1.82A212 to A215 *(x+4)9.25A216 to A219 float x[5] = {1.5,3.9,7.2,1.82,9.25};

39 6. สำหรับตัวชี้แอเรย์ เช่นถ้ามีการประกาศแอเรย์ int Assignment[10] การใช้ Assignment[3] มีความหมายเดียวกับ *(Assignment + 3) 7. การใช้เครื่องหมาย &* ติดกัน เช่น &*x จะมีความหมายเช่นเดียวกับการใช้ x โดยลำพัง

40 8. การส่งผ่านตัวแปร ที่ไม่ใช่แอเรย์ เข้าไปเปลี่ยนค่าในฟังก์ชั่น ในการเรียกฟังก์ชั่นนั้นจะต้องใช้เครื่องหมาย & หน้าตัวแปร และในส่วนของการประกาศพารามิเตอร์ในฟังก์ชั่น และการใช้งานตัวแปรในคำสั่งต่างๆภายในฟังก์ชั่น ต้องใช้เครื่องหมาย * นำหน้าตัวแปรทุกครั้ง เช่น หากตัวแปร mean ประกาศเป็น float mean มีการส่งพอยน์เตอร์นี้เป็นพารามิเตอร์ให้กับฟังก์ชั่น FindAverage โดยเรียกใช้ฟังก์ชั่นเป็น FindAverage(Score, NumberOfStudents, mean void FindAverage(int values[], int N, float *av) { int i, sum=0; for(i=0;i { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.in.th/9/2142432/slides/slide_40.jpg", "name": "8.", "description": "การส่งผ่านตัวแปร ที่ไม่ใช่แอเรย์ เข้าไปเปลี่ยนค่าในฟังก์ชั่น ในการเรียกฟังก์ชั่นนั้นจะต้องใช้เครื่องหมาย & หน้าตัวแปร และในส่วนของการประกาศพารามิเตอร์ในฟังก์ชั่น และการใช้งานตัวแปรในคำสั่งต่างๆภายในฟังก์ชั่น ต้องใช้เครื่องหมาย * นำหน้าตัวแปรทุกครั้ง เช่น หากตัวแปร mean ประกาศเป็น float mean มีการส่งพอยน์เตอร์นี้เป็นพารามิเตอร์ให้กับฟังก์ชั่น FindAverage โดยเรียกใช้ฟังก์ชั่นเป็น FindAverage(Score, NumberOfStudents, mean void FindAverage(int values[], int N, float *av) { int i, sum=0; for(i=0;i

41 9. การส่งผ่านแอเรย์เป็นพารามิเตอร์ของฟังก์ชั่น ในตอนเรียกฟังก์ชั่นให้ใช้ชื่อแอเรย เช่น Assignment ( โดยไม่มีวงเล็บสี่เหลี่ยมตามหลัง ) แต่ในการประกาศพารามิเตอร ให้ใช้การประกาศแอเรย์ตามปกติ int Assignment[] หรือ int *Assignment สำหรับแอเรย์สองมิติขึ้นไป การประกาศพรารามิเตอร์ของฟังก์ชั่น ต้องใส่ตัวเลขในมิติที่ 2 ขึ้นไป ( ทุกมิติยกเว้นมิติแรก ) เช่น int Matrix[][20] หรือ int *Matrix[20] float ThreeDim[][30][3] หรือ float *ThreeDim[30][3]

42 10. การส่งผ่านพอยน์เตอร์ไปยังฟังก์ชั่น ในการเรียกฟังก์ชั่นให้ส่งโดยใช้ชื่อพอยน์เตอร์ เช่น หากตัวแปร mean ประกาศเป็น float *mean มีการส่งพอยน์เตอร์นี้เป็นพารามิเตอร์ให้กับฟังก์ชั่น FindAverage โดยเรียกใช้ฟังก์ชั่นเป็น FindAverage(Score, NumberOfStudents, mean) และในการประกาศพารามิเตอร์ในการประกาศฟังก์ชั่น จะต้องเป็นชนิดพอยน์เตอร์ void FindAverage(int values[], int N, float *av) { int i, sum=0; for(i=0;i { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.in.th/9/2142432/slides/slide_42.jpg", "name": "10.", "description": "การส่งผ่านพอยน์เตอร์ไปยังฟังก์ชั่น ในการเรียกฟังก์ชั่นให้ส่งโดยใช้ชื่อพอยน์เตอร์ เช่น หากตัวแปร mean ประกาศเป็น float *mean มีการส่งพอยน์เตอร์นี้เป็นพารามิเตอร์ให้กับฟังก์ชั่น FindAverage โดยเรียกใช้ฟังก์ชั่นเป็น FindAverage(Score, NumberOfStudents, mean) และในการประกาศพารามิเตอร์ในการประกาศฟังก์ชั่น จะต้องเป็นชนิดพอยน์เตอร์ void FindAverage(int values[], int N, float *av) { int i, sum=0; for(i=0;i


ดาวน์โหลด ppt หน่วยที่ 3 แอเรย์และ พอยน์เตอร์. ข้อมูลดิจิตอล บิท (Bit) หน่วยความจำที่ย่อยที่สุดของคอมพิวเตอร์คือการ เปิด / ปิด (‘On’ /‘Off ’ ) มักจะเขียน 1 แทน ‘On’

งานนำเสนอที่คล้ายกัน


Ads by Google