Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Giải thích con trỏ giao tiếp giữa hàm trong C


Hàm có thể gọi bằng giá trị hoặc tham chiếu.

  • Nếu tham số thực không thay đổi trong hàm gọi, truyền bằng giá trị.
  • Nếu giá trị tham số thực phải thay đổi, dùng truyền tham chiếu.
  • Nếu hàm trả về nhiều giá trị, trả gián tiếp bằng call-by-reference.

Ví dụ

Chương trình C minh họa trả về nhiều giá trị:

#include <stdio.h> 
void main(){ 
    void areaperi(int, int*, int*); 
    int r; 
    float a, p; 
    printf("Nhap ban kinh hinh tron:\n"); 
    scanf("%d", &r); 
    areaperi(r, &a, &p); 
    printf("Dien tich = %f\n", a); 
    printf("Chu vi = %f", p); 
} 
void areaperi(int x, int *p, int *q){ 
    *p = 3.14 * x * x; 
    *q = 2 * 3.14 * x; 
}

Đầu ra

Kết quả chạy chương trình:

Nhap ban kinh: 5 
Dien tich = 78.500000 
Chu vi = 31.400000

Lưu ý

  • Con trỏ có kiểu đi kèm. Không chỉ kiểu con trỏ, mà là con trỏ đến kiểu cụ thể.
  • Kích thước mọi con trỏ giống nhau, bằng size của int.
  • Mọi con trỏ giữ địa chỉ một ô nhớ, nhưng kích thước biến được tham chiếu có thể khác nhau.