Tài Liệu Học Tập
No Result
View All Result
  • Đề Thi
  • Lớp 12
    • Lịch Sử Lớp 12
    • Địa Lí Lớp 12
    • Ngữ Văn Lớp 12
    • GD KTPL Lớp 12
    • Toán Lớp 12
    • Tiếng Anh Lớp 12
    • Hóa Học Lớp 12
    • Sinh Học Lớp 12
    • Vật Lí Lớp 12
  • Lớp 11
    • Toán Lớp 11
    • Ngữ Văn Lớp 11
    • Tiếng Anh Lớp 11
    • Hóa Học Lớp 11
    • Sinh Học Lớp 11
    • Vật Lí Lớp 11
    • Lịch Sử Lớp 11
    • Địa Lí Lớp 11
    • GDCD Lớp 11
  • Lớp 10
    • Toán Lớp 10
    • Ngữ Văn Lớp 10
    • Tiếng Anh Lớp 10
    • Hóa Học Lớp 10
    • Sinh Học Lớp 10
    • Vật Lí Lớp 10
    • Lịch Sử Lớp 10
    • Địa Lí Lớp 10
    • GDKTPL Lớp 10
    • Công nghệ lớp 10
    • Tin Học Lớp 10
  • Lớp 9
    • Toán Lớp 9
    • Ngữ Văn Lớp 9
    • Tiếng Anh Lớp 9
    • Lịch sử và địa lý lớp 9
    • Khoa Học Tự Nhiên Lớp 9
    • GDCD Lớp 9
  • Lớp 8
    • Toán Lớp 8
    • Ngữ Văn Lớp 8
    • Tiếng Anh Lớp 8
    • Lịch sử và địa lý lớp 8
    • Khoa Học Tự Nhiên Lớp 8
    • GDCD 8
  • Lớp 7
    • Toán Lớp 7
    • Văn Lớp 7
    • Tiếng Anh Lớp 7
    • Lịch Sử Và Địa Lí Lớp 7
    • Khoa Học Tự Nhiên Lớp 7
  • Lớp 6
    • Toán Lớp 6
    • Văn Lớp 6
    • Tiếng Anh lớp 6
    • Lịch Sử và Địa Lí Lớp 6
    • Khoa Học Tự Nhiên lớp 6
  • Lớp 5
    • Toán lớp 5
    • Tiếng Việt Lớp 5
    • Tiếng Anh Lớp 5
    • Lịch Sử và Địa Lí Lớp 5
  • Lớp 4
    • Toán lớp 4
    • Tiếng Việt Lớp 4
    • Tiếng Anh Lớp 4
    • Lịch Sử và Địa Lí Lớp 4
  • Lớp 3
    • Toán lớp 3
    • Tiếng Anh Lớp 3
    • Tiếng Việt Lớp 3
  • Mẹo Hay
  • Tin tức
  • Liên Hệ
Tài Liệu Học Tập
No Result
View All Result
Home chính tả

[C++]. Tham Chiếu Và Tham Trị

by Tranducdoan
21/01/2026
in chính tả
0
Đánh giá bài viết

image

1. Truyền Tham Trị

Truyền tham trị – Pass by value là hình thức xây dựng tham số phổ biến cho hàm, như trong bài học trước về hàm thì mình đã chú ý về việc giá trị của đối số sẽ được gán cho tham số khi lời gọi hàm được thực hiện.

Xem xét ví dụ sau bạn sẽ hiểu rõ hơn về tham số và đối số, từ đó sẽ nắm được logic khi gọi hàm với cách truyền tham trị

Ở đây mình dùng toán tử địa chỉ (&) để in ra địa chỉ của biến trong bộ nhớ máy tính, địa chỉ thường được lưu dưới dạng số hexa.

Mã nguồn :

#include “iostream” using namespace std; void thaydoi(int n){ cout << “Dia chi cua n trong bo nho may tinh : ” << &n << endl; n += 100; cout << “Gia tri cua n trong ham thay doi : ” << n << endl; } int main(){ int m = 1000; cout << “Dia chi cua m trong bo nho may tinh : ” << &m << endl; thaydoi(m); cout << “Gia tri cua m sau khi ham ket thuc : ” << m << endl; return 0; }

Output :

Dia chi cua m trong bo nho may tinh : 0x6ffe1c Dia chi cua n trong bo nho may tinh : 0x6ffdf0 Gia tri cua n trong ham thay doi : 1100 Gia tri cua m sau khi ham ket thuc : 1000

Giải thích :

  • n là tham số và m là đối số, giá trị của đối số m được gán cho n khi bạn gọi hàm thaydoi(m). Ở đây giá trị của m là 1000 sẽ được gán cho n và vì thế n cũng bằng 1000
  • Địa chỉ của m trong máy tính là 0x6ffe1c, trong khi đó địa chỉ của n trong hàm thaydoi là 0x6ffdf0 điều này chứng tỏ n và m là 2 biến khác nhau, không cùng quản lý 1 ô nhớ trong máy tính
  • Trong hàm thaydoi giá trị của n được tăng lên 100, khi đó n thành 1100 và ô nhớ 0x6ffdf0 (n đang quản lý) sẽ có giá trị là 1100
  • Sau khi hàm thaydoi kết thúc thì giá trị của m vẫn sẽ là 1000, ô nhớ 0x6ffe1c không hề bị can thiệp gì khi hàm thay đổi thực thi

Kết luận : Khi hàm có tham số là tham trị thì đối số bạn truyền vào hàm và tham số của hàm là 2 biến khác nhau và việc bạn thay đổi tham số sẽ không ảnh hưởng gì tới đố số.

2. Truyền Tham Chiếu

Truyền tham chiếu – Pass by reference là cách thức xây dựng hàm với đối số là một tham chiếu, có thể hiểu đơn giản thì tham chiếu ở đây là địa chỉ của biến

Để xây dựng tham số là tham chiếu bạn thêm dấu & trước tên tham số khi xây dựng hàm.

Hàm khi truyền tham chiếu có thể giúp thay đổi giá trị của đối số sau khi lời gọi hàm kết thúc, hiểu đơn giản đây là phương pháp giúp hàm truy cập trực tiếp vào địa chỉ của đối số và thay đổi giá trị tại ô nhớ đó trong máy tính, dẫn đến giá trị của đối số sẽ bị thay đổi theo.

Xem xét ví dụ sau đây bạn sẽ hiểu rõ hơn về tham chiếu trong C++

Mã nguồn :

#include “iostream” using namespace std; void thaydoi(int &n){ cout << “Dia chi cua n trong bo nho may tinh : ” << &n << endl; n += 100; } int main(){ int m = 1000; cout << “Dia chi cua m trong bo nho may tinh : ” << &m << endl; thaydoi(m); cout << “Gia tri cua m sau khi ham ket thuc : ” << m << endl; return 0; }

Output :

Dia chi cua m trong bo nho may tinh : 0x6ffe1c Dia chi cua n trong bo nho may tinh : 0x6ffe1c Gia tri cua m sau khi ham ket thuc : 1100

Giải thích :

  • Đối số m và tham số n trong trường hợp này đều quản lý ô nhớ có địa chỉ 0x6ffe1c trong máy tính
  • Ở đây địa chỉ của m (0x6ffe1c) được gán cho địa chỉ của n (0x6ffe1c) vì thế những gì thay đổi đối với n và m thì đều thay đổi giá trị tại ô nhớ 0x6ffe1c
  • Ban đầu n quản lý ô nhớ 0x6ffe1c đang có giá trị là 1000, sau đó n += 100 thì ô nhớ 0x6ffe1c lưu trữ giá trị 1100 và đây cũng là ô nhớ mà m đang quản lý, vì thế sau khi hàm kết thúc m cũng có giá trị là 1100

Chú ý :

  • Trong C không có truyền tham chiếu, bạn phải sử dụng con trỏ thay vì tham chiếu. Vậy nên nếu bạn đang học lập trình C thì đừng dùng nó một cách vô thức vì thấy người khác cũng dùng nó khi code C, thực tế đây là một hiểu nhầm
  • Nếu tham số là tham chiếu thì bạn không thể truyền đối số là giá trị hằng số mà phải thông qua biến, ví dụ trong mã nguồn trên thì bạn không thể gọi thaydoi(1000) vì tham chiếu hoạt động dựa trên địa chỉ của đối số

Ví dụ về việc hoán đổi giá trị của 2 biến thông qua hàm bằng tham chiếu và tham trị :

#include “iostream” using namespace std; void swap1(int a, int b){ int tmp = a; a = b; b = tmp; } void swap2(int &a, int &b){ int tmp = a; a = b; b = tmp; } int main(){ int x = 100, y = 200; swap1(x, y); cout << x << ” ” << y << endl; swap2(x, y); cout << x << ” ” << y << endl; return 0; }

Output :

100 200 200 100

Kết luận : Khi bạn cần xây dựng hàm và muốn những thay đổi trong hàm sẽ được giữ nguyên với đối số sau khi hàm kết thúc thì sử dụng truyền tham chiếu, cũng có một cách khác là sử dụng con trỏ nhưng bạn sẽ học kiến thức này sau.

Video Tutorial :

UkX6o68LNMs

Previous Post

Cách giải phương trình lớp 8 (cực hay, có đáp án)

Next Post

Al4C3 + KOH + H2O → CH4 + KAlO2

Tranducdoan

Tranducdoan

Trần Đức Đoàn sinh năm 1999, anh chàng đẹp trai đến từ Thái Bình. Hiện đang theo học và làm việc tại trường cao đẳng FPT Polytechnic

Related Posts

Al4C3 + KOH + H2O → CH4 + KAlO2

by Tranducdoan
21/01/2026
0
0

Phản ứng Al4C3 + KOH + H2O tạo ra khí methane CH4 thuộc loại phản ứng trao đổi đã được...

Phản ứng hóa học

by Tranducdoan
21/01/2026
0
0

Một phần của loạt bài vềHóa học Cổng thông tin Hóa học Thể loại Phản ứng hoá học là quá...

by Tranducdoan
21/01/2026
0
0

Supephotphat kép là một loại Super lân được dùng nhiều trong nông nghiệp. Vậy Supephotphat kép là gì? Công thức...

Biết rằng: Trong một tam giác vuông. Đường trung tuyến ứng với cạnh huyền bằng một nửa

by Tranducdoan
21/01/2026
0
0

Bài 4: Tính chất ba đường trung tuyến của tam giác Bài 25 trang 67 sgk Toán lớp 7 Tập...

Load More
Next Post

Al4C3 + KOH + H2O → CH4 + KAlO2

  • Trending
  • Comments
  • Latest
File đề thi thử lịch sử thpt quốc gia 2024 2025 có đáp án

80 File đề thi thử lịch sử thpt quốc gia 2026 2025 có đáp án

16/12/2025
Viết bài văn kể lại câu chuyện về một nhân vật lịch sử mà em đã đọc đã nghe lớp 4 ngắn gọn

Kể lại câu chuyện về một nhân vật lịch sử lớp 4 ngắn gọn

27/03/2025
viet-bai-van-ke-ve-cau-chuyen-ma-em-yeu-thich-ngan-gon

Viết bài văn kể lại một câu chuyện ngắn gọn nhất 16 mẫu

16/11/2024
De Thi Cuoi Hoc Ki 1 Ngu Van 12 Nam 2021 2022 So Gddt Bac Giang Page 0001 Min

Đề thi học kì 1 lớp 12 môn văn năm học 2021-2022 tỉnh Bắc Giang

0
De Thi Cuoi Ki 1 Mon Van 9 Huyen Cu Chi 2022

Đề thi văn cuối kì 1 lớp 9 huyện Củ Chi năm học 2022 2023

0
Dự án tốt nghiệp FPT Polytechnic ngành Digital Marketing

Dự án tốt nghiệp FPT Polytechnic ngành Digital Marketing

0

50 bài toán ứng dụng tích phân tính quãng đường vật chuyển động

21/01/2026

Đánh giá trường THPT Tôn Thất Tùng tỉnh Đà Nẵng có tốt không?

21/01/2026

Các bài toán hình về diện tích

21/01/2026
Xoilac TV trực tiếp bóng đá sách online Socolive trực tiếp 789bet https://pihu.in.net/ 68vip
Tài Liệu Học Tập

Copyright © 2022 Tài Liệu Học Tập.

Chuyên Mục

  • Đề Thi
  • Lớp 12
  • Lớp 11
  • Lớp 10
  • Lớp 9
  • Lớp 8
  • Lớp 7
  • Lớp 6
  • Lớp 5
  • Lớp 4
  • Lớp 3
  • Mẹo Hay
  • Tin tức
  • Liên Hệ

Tham Gia Group Tài Liệu Học Tập

No Result
View All Result
  • Đề Thi
  • Lớp 12
    • Lịch Sử Lớp 12
    • Địa Lí Lớp 12
    • Ngữ Văn Lớp 12
    • GD KTPL Lớp 12
    • Toán Lớp 12
    • Tiếng Anh Lớp 12
    • Hóa Học Lớp 12
    • Sinh Học Lớp 12
    • Vật Lí Lớp 12
  • Lớp 11
    • Toán Lớp 11
    • Ngữ Văn Lớp 11
    • Tiếng Anh Lớp 11
    • Hóa Học Lớp 11
    • Sinh Học Lớp 11
    • Vật Lí Lớp 11
    • Lịch Sử Lớp 11
    • Địa Lí Lớp 11
    • GDCD Lớp 11
  • Lớp 10
    • Toán Lớp 10
    • Ngữ Văn Lớp 10
    • Tiếng Anh Lớp 10
    • Hóa Học Lớp 10
    • Sinh Học Lớp 10
    • Vật Lí Lớp 10
    • Lịch Sử Lớp 10
    • Địa Lí Lớp 10
    • GDKTPL Lớp 10
    • Công nghệ lớp 10
    • Tin Học Lớp 10
  • Lớp 9
    • Toán Lớp 9
    • Ngữ Văn Lớp 9
    • Tiếng Anh Lớp 9
    • Lịch sử và địa lý lớp 9
    • Khoa Học Tự Nhiên Lớp 9
    • GDCD Lớp 9
  • Lớp 8
    • Toán Lớp 8
    • Ngữ Văn Lớp 8
    • Tiếng Anh Lớp 8
    • Lịch sử và địa lý lớp 8
    • Khoa Học Tự Nhiên Lớp 8
    • GDCD 8
  • Lớp 7
    • Toán Lớp 7
    • Văn Lớp 7
    • Tiếng Anh Lớp 7
    • Lịch Sử Và Địa Lí Lớp 7
    • Khoa Học Tự Nhiên Lớp 7
  • Lớp 6
    • Toán Lớp 6
    • Văn Lớp 6
    • Tiếng Anh lớp 6
    • Lịch Sử và Địa Lí Lớp 6
    • Khoa Học Tự Nhiên lớp 6
  • Lớp 5
    • Toán lớp 5
    • Tiếng Việt Lớp 5
    • Tiếng Anh Lớp 5
    • Lịch Sử và Địa Lí Lớp 5
  • Lớp 4
    • Toán lớp 4
    • Tiếng Việt Lớp 4
    • Tiếng Anh Lớp 4
    • Lịch Sử và Địa Lí Lớp 4
  • Lớp 3
    • Toán lớp 3
    • Tiếng Anh Lớp 3
    • Tiếng Việt Lớp 3
  • Mẹo Hay
  • Tin tức
  • Liên Hệ

Copyright © 2022 Tài Liệu Học Tập.