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
Henry viết 12:25 ngày 01/10/2018

Hình như tham trị với tham biến nó là một mà phải không ta???

Vinh Nguyễn viết 12:18 ngày 01/10/2018

là 1 thì tui hỏi làm gì =))

Henry viết 12:21 ngày 01/10/2018

Theo trí nhớ của mình là một mà ta?

Vinh Nguyễn viết 12:22 ngày 01/10/2018

Trong BT người ta hỏi vậy nên chắc chắn nó khác nhau

Henry viết 12:21 ngày 01/10/2018

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 động

Nguyen Kien viết 12:19 ngày 01/10/2018
Câu hỏi chưa rõ ràng, có tới hai chương trình con mà :) 
Trần Hoàn viết 12:15 ngày 01/10/2018

Tham 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ị.

Vinh Nguyễn viết 12:13 ngày 01/10/2018

đề 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”

Nguyen Kien viết 12:24 ngày 01/10/2018

hàm nhập mảng: tham chiếu
hàm xuất mảng: tham trị

Vinh Nguyễn viết 12:27 ngày 01/10/2018

ok tks ,tham chiếu còn gọi là ham biến hả

rogp10 viết 12:26 ngày 01/10/2018

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”.

Hải viết 12:26 ngày 01/10/2018

Theo mình thì bạn nên phân biệt thế này:

  1. Truyền tham trị (C/C++)
  2. Truyền tham biến: Có hai kiểu
    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++)

Nguyen Kien viết 12:12 ngày 01/10/2018
yes, of course
Bài liên quan
0