01/10/2018, 15:01
Tại sao truyền mảng a là tham trị nhưng sau khi kết thúc, mảng a vẫn thay đổi và cho ra kết quả đúng?
Em làm phần nhập xuất mảng. Tại sao phần code bên dưới, em truyền mảng a là tham trị nhưng sau khi kết thúc, mảng a vẫn thay đổi và cho ra kết quả đúng ạ? Em xin cảm ơn
#include<iostream>
using namespace std;
void nhapmang(int a[], int n){
for (int i=0; i<n; i++) cin>>a[i];
}
void xuatmang(int a[],int n) {
for (int i=0; i<n; i++) cout<<a[i];
}
int main() {
int a[10],n;
cin>>n;
nhapmang(a,n);
xuatmang(a,n);
return 0;
}
Bài liên quan
Truyền kiểu này thật ra nó là tham chiếu, nhưng bó buộc vào kiểu mảng.
bạn cứ gõ ở main in địa chỉ của mảng a rồi viết 1 hàm khác truyền mảng vào và in địa chỉ mảng a[0] đi thì bạn sẽ hiểu tại sao
Thật chất là bạn đang truyền tham chiếu chứ không phải tham trị
Thực ra a chỉ là con trỏ mảng thôi còn mảng a là do người ta gọi vậy, chứ đúng ra là “vùng nhớ được a trỏ vào”.