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

Truyền giá trị (pass by value) trong ngôn ngữ C là gì?


Truyền giá trị trong C là gửi giá trị biến làm đối số.

Thuật toán

Thuật toán giải thích pass by value:

BẮT ĐẦU 
Bước 1: Khai báo hàm sẽ được gọi. 
Bước 2: Khai báo biến. 
Bước 3: Nhập 2 biến a,b tại runtime. 
Bước 4: Gọi hàm, nhảy bước 6. 
Bước 5: In kết quả a,b. 
Bước 6: Hàm gọi swap. 
    i. Khai báo temp 
    ii. Temp = a 
    iii. a = b 
    iv. b = temp 
KẾT THÚC

Ví dụ 1

Chương trình C hoán đổi 2 số dùng pass by value:

#include <stdio.h> 
void main() { 
    void swap(int, int); 
    int a, b; 
    printf("Nhập 2 số: "); 
    scanf("%d%d", &a, &b); 
    printf("Trước hoán đổi a=%d b=%d", a, b); 
    swap(a, b); 
    printf("Sau hoán đổi a=%d, b=%d", a, b); 
} 
void swap(int a, int b) { 
    int t; 
    t = a; 
    a = b; 
    b = t; 
}

Kết quả

Nhập 2 số: 10 20 
Trước hoán đổi a=10 b=20 
Sau hoán đổi a=10 b=20

Lưu ý: Giá trị gốc không thay đổi vì chỉ truyền bản sao.

Ví dụ 2

Chương trình C tăng giá trị lên 5 mỗi lần gọi bằng pass by value:

#include <stdio.h> 
int inc(int num) { 
    num = num + 5; 
    return num; 
} 
int main() { 
    int a = 10, b, c, d; 
    b = inc(a); 
    c = inc(b); 
    d = inc(c); 
    printf("Giá trị a: %d\n", a); 
    printf("Giá trị b: %d\n", b); 
    printf("Giá trị c: %d\n", c); 
    printf("Giá trị d: %d\n", d); 
    return 0; 
}

Kết quả

Giá trị a: 10 
Giá trị b: 15 
Giá trị c: 20 
Giá trị d: 25