Lập trình hướng đối tượng C++ – Bài 17. Truyền đối số cho hàm theo địa chỉ | Bui The Tam



PGS TS Bùi Thế Tâm. Khóa học miễn phí Lập trình hướng đối tượng C++ trên Visual Studio: Truyền đối số cho tham số của hàm theo địa chỉ
1. Khái niệm tham số và đối số
Tham số (parameters, tham số hình thức) của hàm: là các biến được sử dụng trong một hàm mà giá trị của biến đó được cung cấp bởi lời gọi hàm. Các tham số được đặt bên trong dấu ngoặc đơn, cú pháp giống khai báo biến, cách nhau bằng dấu phẩy.
Đối số (arguments, tham số thực) của hàm: là các giá trị truyền vào hàm qua lời gọi hàm, cách nhau bởi dấu phẩy. Số lượng đối số tương ứng với số lượng tham số của hàm.
2. Ba cách truyền đối số (arguments) cho một hàm trong C++:
• Truyền giá trị (Passing Arguments by value)
• Truyền địa chỉ (Passing Arguments by address)
• Truyền tham chiếu (Passing Arguments by reference)
3. Truyền giá trị: Khi truyền đối số cho hàm ở dạng giá trị, giá trị của đối số được sao chép vào tham số của hàm, đối số sẽ không bị thay đổi sau lời gọi hàm. Truyền giá trị cho hàm thường được sử dụng nhất vì tính linh hoạt (đối số có thể là biến, hằng, biểu thức, structs, classes, enumerators) và an toàn (đối số không bị thay đổi bởi hàm).
Khi đối số là các mảng (arrays), kiểu cấu trúc (structs), hoặc các lớp (classes) thì không nên truyền theo giá trị. Khi đối số là các kiểu dữ liệu cơ bản và không có nhu cầu thay đổi giá trị của đối số sau khi thực hiện hàm thì nên truyền theo giá trị..
double chunhat(double x, double y), s = chunhat(a,b)
4. Truyền đối số cho tham số của hàm theo địa chỉ
Trong cách truyền đối số cho tham số của hàm theo địa chỉ, tham số hình thức của hàm khai là con trỏ, đối số trong lời gọi hàm là địa chỉ. Khi thực hiện hàm máy sẽ tạo 1 vùng nhớ để chứa địa chỉ (tức là 1 con trỏ), sau đó sao chép địa chỉ của đối số vào con trỏ. Các lệnh tính tóan trong hàm làm việc với vùng nhớ mà con trỏ trỏ tới (tức là làm việc với số trong vùng nhớ của đối số). Chính vì vậy khi thóat khỏi hàm kết quả tính tóan vẫn lưu trong vùng nhớ chứa đối số ban đầu.
Hàm có các tham số là con trỏ có thể dùng để nhận được nhiều giá trị tính tóan.
Đối số của hàm là mảng thì bao giờ cũng phải dùng tham số hình thức là con trỏ và truyền đối số cho hàm theo địa chỉ.
Giới thiệu Khóa học Lập trình hướng đối tượng C++ Visual studio: dành cho người bắt đầu học lập trình, sinh viên đại học và cao đẳng thuộc ngành đào tạo Tin học. Giáo trình dạy từ các lệnh cơ bản của ngôn ngữ C++ cho đến lập trình hướng đối tương.
PlayList về Lập trình hướng đối tượng C++ trên Visual Studio 2013:

Đây là kênh chính thức của PGS TS Bùi Thế Tâm, Kênh đào tạo miễn phí về Công nghệ thông tin. Nội dung: Tin học văn phòng, Hướng dẫn sử dụng Microsoft Office, Hướng dẫn dùng Google Drive, Lập trình ngôn ngữ C, Lập trình hướng đối tượng C++ trên Visual Studio, Cấu trúc dữ liệu và giải thuật, Algorithms (Giải thuật), Sorting algorithms, Graph (đồ thi), Các thuật toán toán tối ưu, các bài toán thống kê, Giáo trình tin học văn phòng, Giáo trình ngôn ngữ lập trình C.
Bùi Thế Tâm có nhiều năm kinh nghiệm viết sách và dạy Tin học ở các trường Đại học, làm việc tại Viện Toán học Hà Nội từ 1969 – 2013, là tác giả của một số đầu sách nhiều người dùng: “Giá trình tin học văn phòng”, “Cẩm nang sử dụng máy vi tính”, “Ngôn ngữ lập trình C và lập trình hướng đối tượng”, “Giáo trình Turbo Pascal 7.0”, “Các phương pháp tối ưu hóa” …
Kênh này dành cho các bạn sinh viên, giáo viên dạy môn Tin học, các bạn muốn học Tin học mà không có điều kiện tới các lớp học.
Hãy like và chia sẻ các vidio trên Kênh cho bạn bè và những người bạn quen đang muốn học về Tin học. Mọi hình thức copy và sao chép đều vi phạm bản quyền của youtube nếu không được sự đồng ý của tác giả Bùi Thế Tâm. Đừng quên đăng ký kênh để học thêm các bài mới
Subscribe kênh Youtube Bui The Tam:
Facebook:
Twitter:
Blog:

Nguồn: https://dothihoa.com

Xem thêm bài viết khác: https://dothihoa.com/cong-nghe

  • bài giảng quá hay luôn thầy

    Masao's Cube May 22, 2020 4:56 pm Reply

Leave a Reply

Your email address will not be published. Required fields are marked *