Các anh cho em hỏi trong hàm của C. lúc ghi danh sách đối số ghi nào thêm lênh &
ví dụ int pro(int a) và int pro(int &a) nó khác nhau thế nào? Và cách sử dụng của nó.
E đọc giáo trình nhưng k phân biệt lúc sử dụng 2 lệnh trên
Hỏi về dấu & trong C
Hi Nhật Thành, trong C không có khái niệm này. Có lẽ em hiểu nhầm sang C++. Trong C++ cái này gọi là reference.
Em xem bài này của anh để hiểu reference là gì.
Nó là tham chiếu (reference). Có & thì nếu biến thay đổi bên trong hàm, ra ngoài biến mang giá trị mới. Không có & thì biến có thay đổi hay không thay đổi, ra ngoài biến vẫn mang giá trị cũ.
À quên, mà đây là C++ nhé @webhnt
Một cách dễ hiểu mình sẽ đưa ra ví dụ cho bạn.
#include <iostream>
using namespace std;
// Truyền tham trị
void increment(int a) {
a++;
cout << a << endl;
}
// Truyền tham chiếu
void incrementR(int &a) {
a++;
cout << a << endl;
}
int main() {
int x = 10;
increment(x); // Output: 11
cout << x << endl; // Output: 10
incrementR(x); // Output: 11
cout << x << endl; // Output: 11
return 0;
}
Như bên trên thì hàm mà ta không có toán tử & ở trong tham số của nó thì mặc định sẽ là truyền giá trị của đối số vào hàm đó và dĩ nhiên giá trị gốc của biến x sẽ không bị thay đổi. Còn nếu ta dùng phép tham chiếu tới biến đó thì khi ta thao tác bên trong hàm với đối số truyền vào giá trị của biến gốc được truyền vào sẽ bị thay đổi.
dạ em cảm ơn các anh
Thanks everyone, dễ hiểu quá
dễ hiểu lắm ạ, cảm ơn anh rất nhiều