Tham số trong C là gì

Có hai cách truyền tham số cho hàm: Tham  trị và Tham chiếu (biến) :

Truyền tham chiếu là truyền địa chỉ ô nhớ của biến, do đó khi thay đổi giá trị của biến bên trong phương thức thì giá trị của biến cũng bị thay đổi bên ngoài phương thức.

Truyền tham trị là truyền giá trị của biến (không phải là địa chỉ ô nhớ), khi đó phương thức sẽ tự động tạo ra một địa chỉ ô nhớ mới để lưu trữ giá trị này, do đó nó chỉ được thay đổi trong phương thức hiện hành và giá trị của biến không bị thay đổi bên ngoài phương thức hiện hành.

 

Tham số trong C là gì

Hãy xem các ví dụ sau để hiểu rõ về truyền tham chiếu và truyền giá trị trong C++.


Truyền theo tham trị

Truyền theo tham trị, giá trị được truyền cho hàm được lưu trữ cục bộ bởi tham số của hàm trong vị trí ngăn xếp của bộ nhớ.

Chúng ta tìm hiểu ví dụ truyền tham  trị:

#include<stdio.h>
using namespace std;  
void change(int num) {
    num = num + 1;
}
 
int main() {
    int x = 100;
    cout<<"Truoc khi goi phuong thuc x = "<<x<<"\n";
    change(x); // truyen tham tri vao phuong thuc
    cout<<"Sau khi goi phuong thuc x = "<<x<<"\n";
    return 0;
}

Kết quả:

Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 100

Trong ví dụ trên, giá trị của biến x không bị thay đổi bên ngoài phương thức change(), mặc dù bên trong phương thức change() chúng ta đã cố gắng thay đổi bằng cách tăng m lên 1.
 


Truyền theo tham chiếu

Truyền theo tham chiếu giá trị ban đầu của biến bị thay đổi.

Lưu ý: để hiểu về truyền tham chiếu trong C++, bạn phải có hiểu biết về con trỏ (pointer) trong C++.

Chúng ta tìm hiểu ví dụ truyền tham chiếu:

Cách 1:

#include<stdio.h>
using namespace std;  
void change(int *num) {
    *num = *num + 1;
}
 
int main() {
    int x = 100;
    cout<<"Truoc khi goi phuong thuc x = "<<x<<"\n";
    change(&x); // truyen tham tri vao phuong thuc
    cout<<"Sau khi goi phuong thuc x = "<<x<<"\n";
    return 0;
}

Cách 2:

#include<stdio.h>
using namespace std;  
void change(int &num) {
    num = num + 1;
}
 
int main() {
    int x = 100;
    cout<<"Truoc khi goi phuong thuc x = "<<x<<"\n";
    change(x); // truyen tham tri vao phuong thuc
    cout<<"Sau khi goi phuong thuc x = "<<x<<"\n";
    return 0;
}

Kết quả:

Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 101

Trong ví dụ trên, cách 1 chúng ta thêm *x trong hàm change, còn cách 2 chúng ta thêm &x. Giá trị của biến x bị thay đổi cả bên trong và bên ngoài phương thức change()




Một điều khá quan trọng trong C đó là truyền tham chiếu và tham trị vào một phương thức (Function).

Truyền tham chiếu là truyền địa chỉ ô nhớ của biến, do đó khi thay đổi giá trị của biến bên trong phương thức thì giá trị của biến cũng bị thay đổi bên ngoài phương thức.

Truyền tham trị là truyền giá trị của biến (không phải là địa chỉ ô nhớ), khi đó phương thức sẽ tự động tạo ra một địa chỉ ô nhớ mới để lưu trữ giá trị này, do đó nó chỉ được thay đổi trong phương thức hiện hành và giá trị của biến không bị thay đổi bên ngoài phương thức hiện hành.

Tham số trong C là gì

Hãy xem các ví dụ sau để hiểu rõ về truyền tham chiếu và truyền giá trị trong C.


#include<stdio.h>

void change(int num) {
    num = num + 1;
}

int main() {
    int x = 100;
    printf("Truoc khi goi phuong thuc x = %d \n", x);
    change(x); // truyen tham tri vao phuong thuc
    printf("Sau khi goi phuong thuc x = %d \n", x);
    return 0;
}

Kết quả:

Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 100

Trong ví dụ trên, giá trị của biến x không bị thay đổi bên ngoài phương thức change(), mặc dù bên trong phương thức change() chúng ta đã cố gắng thay đổi bằng cách tăng m lên 1.



Ví dụ truyền tham chiếu trong C

Lưu ý: để hiểu về truyền tham chiếu trong C, bạn phải có hiểu biết về con trỏ (pointer) trong C.

#include<stdio.h>

void change(int *num) {
    *num = *num + 1;
}

int main() {
    int x = 100;
    printf("Truoc khi goi phuong thuc x = %d \n", x);
    change(&x); // truyen tham chieu vao phuong thuc
    printf("Sau khi goi phuong thuc x = %d \n", x);
    return 0;
}

Kết quả:

Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 101

Trong ví dụ trên, Giá trị của biến x bị thay đổi cả bên trong và bên ngoài phương thức change().



Tham số và đổi số khác nhau như thế nào?

Toán học. Trong toán học, sự khác nhau giữa một "tham số" (parameter) một "đối số" (argument) của một hàm là: tham số là các ký hiệu thuộc phần định nghĩa của hàm, trong khi các đối số là các ký hiệu được cung cấp cho hàm khi nó được dùng.

Các đội số của hàm là gì?

Đối số mặc định của hàm trong C++, hay còn gọi tham số, là các giá trị được cung cấp trong việc khai báo hàm và được trình biên dịch tự động gán các giá trị này cho các biến nếu người lập trình thực hiện gọi hàm mà không truyền giá trị cho các đối số.

Thậm trí là gì?

Tham trị cách tham chiếu để sử dụng khi không có nhu cầu thay đổi giá trị của biến đầu vào. “Tham biến cách tham chiếu để sử dụng khi có nhu cầu thay đổi giá trị của biến đầu vào. Nó liên quan đến việc truyền giá trị của một biến bên ngoài hàm vào trong hàm(function)/ phương thức (method) để xử lý.

Tham số tham chiếu là gì?

Số tham chiếu là số nhận dạng duy nhất được gán cho bất kỳ giao dịch tài chính nào, kể cả những giao dịch được thực hiện bằng thẻ tín dụng hoặc thẻ ghi nợ. – Số tham chiếu được tạo ra về mặt công nghệ và được chỉ định cho một giao dịch.