01/10/2018, 10:11
Tham trị hay tham biến
Cho hỏi các hàm con là tham trị hay tham biên ạ.
#include <iomanip>
#include <iostream>
using namespace std;
const int KTM = 10;
void nhapmang(int b[], int &);
void xuatmang(int b[], int);
void main()
{
int a[KTM],n;
nhapmang(a,n);
xuatmang(a,n);
system("pause");
}
void nhapmang(int b[], int &m)
{
int i;
do{
cout<<"
Nhap so phan tu mang";
cin>>m;
}while (m <= 0 || m > KTM);
cout<<"
Nhap gia tri cho mang:";
for(i = 0; i < m; i++)
{
cout<<"
Nhap phan tu thu :"<<i<<":";
cin>>b[i];
}
}
void xuatmang(int b[], int m)
{
cout<<"
Mang la";
for(int i = 0; i < m; i++)
cout<<b[i]<<setw(3);
}
//a/Nhập vào số lượng phần tử mảng, sau đó nhập và xuất ra giá trị phần tử mảng
//b/
//c/Khai báo ra cái hàm nhập và xuất mảng
//d/Không, vì giới hạn phần tử mảng là 10
Bài liên quan
Hình như tham trị với tham biến nó là một mà phải không ta???
là 1 thì tui hỏi làm gì =))
Theo trí nhớ của mình là một mà ta?
Trong BT người ta hỏi vậy nên chắc chắn nó khác nhau
Mình nhớ tham biến với tham trị là một. Giá trị cho vào hàm hoặc thủ tục không bị thay đổi. Pass by Value
Còn tham chiếu là giá trị bị thay đổi Pass by Reference
Còn trong đoạn code của bạn thì là Pass by Reference. Có nghĩa là giá trị biến
m
sẽ bị thay đổi trong hàm nhapmang. Còn hàm xuatmang thì là Pass by Value. Giá trịm
sẽ không bị tác độngTham trị / tham chiếu giá trị
Tham biến / tham chiếu biến / tham chiếu địa chỉ
Chương trình có 3 hàm cùng cấp:
main()
,nhapmang()
,xuatmang()
. Thế hàm nào là hàm con? Mà thực ra thì mình cũng không biết hàm thế nào gọi là “hàm con”, chỉ biết khái niệm “chương trình con” trong Pascal và “hàm” hoặc “phương thức” trong lập trình hướng đối tượng.-Hàm
main()
không có tham số-Hàm
nhapmang()
, cả 2 tham số đều là tham biến (C++ theo như mình biết thì không có truyền mảng tham trị)-Hàm
xuatmang()
, tham sốm
là tham trị.đề bài trong giáo trình hỏi vậy nên tui cũng chiụ, câu hoỉ nè “KHAI BÁO THAM SỐ HÌNH THỨC TRONG CÁC HÀM CON LÀ THAM TRỊ HAY THAM BIẾN”
hàm nhập mảng: tham chiếu
hàm xuất mảng: tham trị
ok tks ,tham chiếu còn gọi là ham biến hả
Từ “reference” trong “pass by reference” có thể không phải là cái reference của ngôn ngữ đó, vì nó độc lập với ngôn ngữ.
Nói về C++ để pass by reference thì đúng là dùng reference, nhưng mà “pass by reference” là “tham biến” chứ không phải “tham chiếu”.
Theo mình thì bạn nên phân biệt thế này:
2.1. Truyền Con trỏ (C/C++)
2.2. Truyền Tham chiếu (C++)
Code tham khảo bạn xem ở đây.
Hàm
nhapmang()
của bạn với&m
là tham chiếu (chỉ dùng trong C++)