Latest web development tutorials
×

C หลักสูตร

C กวดวิชาภาษา C แนะนำโดยย่อ C การตั้งค่าสภาพแวดล้อม C โครงสร้างหลักสูตร C ไวยากรณ์พื้นฐาน C ชนิดข้อมูล C ตัวแปร C คงที่ C ประเภทการจัดเก็บ C ผู้ประกอบการ C ผู้พิพากษา C การไหลเวียน C ฟังก์ชัน C การกำหนดขอบเขตกฎระเบียบ C แถว C ชี้ C เชือก C โครงสร้าง C สหภาพ C ฟิลด์บิต C typedef C อินพุตและเอาต์พุต C การอ่านออกเขียนเอกสาร C preprocessor C ส่วนหัว C ปลดเปลื้อง C จัดการข้อผิดพลาด C recursion C พารามิเตอร์ตัวแปร C จัดการหน่วยความจำ C บรรทัดคำสั่ง C คลาสสิก 100 ราย

C ห้องสมุดมาตรฐาน

C ห้องสมุดมาตรฐาน - คู่มืออ้างอิง C ห้องสมุดมาตรฐาน - <assert.h> C ห้องสมุดมาตรฐาน - <ctype.h> C ห้องสมุดมาตรฐาน - <errno.h> C ห้องสมุดมาตรฐาน - <float.h> C ห้องสมุดมาตรฐาน - <limits.h> C ห้องสมุดมาตรฐาน - <locale.h> C ห้องสมุดมาตรฐาน - <math.h> C ห้องสมุดมาตรฐาน - <setjmp.h> C ห้องสมุดมาตรฐาน - <signal.h> C ห้องสมุดมาตรฐาน - <stdarg.h> C ห้องสมุดมาตรฐาน - <stddef.h> C ห้องสมุดมาตรฐาน - <stdio.h> C ห้องสมุดมาตรฐาน - <stdlib.h> C ห้องสมุดมาตรฐาน - <string.h> C ห้องสมุดมาตรฐาน - <time.h>

C ผ่านอาร์เรย์เพื่อฟังก์ชั่น

อาร์เรย์ C อาร์เรย์ C

หากคุณต้องการที่จะผ่านอาร์เรย์หนึ่งมิติในการทำงานเป็นอาร์กิวเมนต์ที่คุณจะต้องอยู่ในต่อไปนี้สามวิธีในการประกาศฟังก์ชั่นในรูปแบบของพารามิเตอร์ผลลัพธ์ของทั้งสามงบเป็นวิธีเดียวกันเพราะแต่ละวิธีจะบอกคอมไพเลอร์ที่จะได้รับ ตัวชี้จำนวนเต็ม ในทำนองเดียวกันคุณยังสามารถส่งผ่านอาร์เรย์หลายมิติเป็นพารามิเตอร์ที่เป็นทางการ

โหมด 1

พารามิเตอร์อย่างเป็นทางการเป็นตัวชี้ (คุณสามารถเรียนรู้ในบทต่อไปเพื่อความรู้ของตัวชี้):

void myFunction(int *param)
{
.
.
.
}

Mode 2

พารามิเตอร์อย่างเป็นทางการเป็นขนาดที่กำหนดอาร์เรย์:

void myFunction(int param[10])
{
.
.
.
}

โหมด 3

พารามิเตอร์อย่างเป็นทางการอาร์เรย์ของขนาดที่ไม่ได้กำหนดต่อไปนี้:

void myFunction(int param[])
{
.
.
.
}

ตัวอย่าง

ตอนนี้ให้ดูที่ฟังก์ชั่นต่อไปนี้ที่อาร์เรย์เป็นพารามิเตอร์และยังผ่านพารามิเตอร์อื่นตามที่พระธรรมเทศนาของพารามิเตอร์ผลตอบแทนเฉลี่ยสำหรับองค์ประกอบในอาร์เรย์แต่ละ:

double getAverage(int arr[], int size)
{
  int    i;
  double avg;
  double sum;

  for (i = 0; i < size; ++i)
  {
    sum += arr[i];
  }

  avg = sum / size;

  return avg;
}

ตอนนี้ขอเรียกฟังก์ชั่นข้างต้นดังต่อไปนี้:

#include <stdio.h>
 
/* 函数声明 */
double getAverage(int arr[], int size);

int main ()
{
   /* 带有 5 个元素的整型数组 */
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;

   /* 传递一个指向数组的指针作为参数 */
   avg = getAverage( balance, 5 ) ;
 
   /* 输出返回值 */
   printf( "平均值是: %f ", avg );
    
   return 0;
}

เมื่อโค้ดข้างต้นจะรวบรวมและดำเนินการก็จะก่อให้เกิดผลลัพธ์ต่อไปนี้:

平均值是: 214.400000

ที่คุณสามารถดูฟังก์ชั่นความยาวของอาร์เรย์จะไม่เกี่ยวข้องเพราะ C ไม่ได้ดำเนินการตรวจสอบขอบเขตพารามิเตอร์ของฟอร์ม

อาร์เรย์ C อาร์เรย์ C