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

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

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

/* 函数定义 */
void swap(int *x, int *y)
{
   int temp;
   temp = *x;    /* 保存地址 x 的值 */
   *x = *y;      /* 把 y 赋值给 x */
   *y = temp;    /* 把 temp 赋值给 y */
  
   return;
}

สำหรับข้อมูลเพิ่มเติมรายละเอียดตัวชี้ C แวะไปที่ C - ชี้ ส่วน

ตอนนี้ให้เราผ่านโดยอ้างอิงถึงการแลกเปลี่ยนฟังก์ชั่นการโทร ():

#include <stdio.h>
 
/* 函数声明 */
void swap(int *x, int *y);
 
int main ()
{
   /* 局部变量定义 */
   int a = 100;
   int b = 200;
 
   printf("交换前,a 的值: %d\n", a );
   printf("交换前,b 的值: %d\n", b );
 
   /* 调用函数来交换值
    * &a 表示指向 a 的指针,即变量 a 的地址 
    * &b 表示指向 b 的指针,即变量 b 的地址 
   */
   swap(&a, &b);
 
   printf("交换后,a 的值: %d\n", a );
   printf("交换后,b 的值: %d\n", b );
 
   return 0;
}

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

ก่อนที่จะเปลี่ยนค่า: 100
ก่อนที่จะเปลี่ยนค่า B: 200
หลังจากการแลกเปลี่ยนค่า: 200
ค่าต่อไปแลกเปลี่ยน B: 100

ตัวอย่างข้างต้นแสดงให้เห็นว่ามีค่านิยมดั้งเดิมของสายที่แตกต่างกันการอ้างอิงโทรภายในฟังก์ชั่นในการเปลี่ยนค่าของ A และ B ในความเป็นจริงเปลี่ยนฟังก์ชั่นที่อยู่ด้านนอก A และ B ค่า

ฟังก์ชัน C ฟังก์ชัน C