30/09/2018, 16:13
[Wiki] Hàm trả về và thoát return trong C/C++
- Cấu trúc :
return <object> ;object có thể là một biến, một con số, một class, struct, null.. hoặc không gì cả.
- Định nghĩa : Là 1 hàm hệ thống.Dùng để ngắt 1 chuỗi lệnh nếu để bên trong hoặc đánh dấu điểm cuối của 1 hàm(Kết thúc).
- ví dụ : viết chương trình tính tổng của 2 số bất kỳ :
#include <iostream>// khai bao thu vien chuan
using namespace std;
int hamTinhTong2So(int a, int b)
{
return a + b;// tra ve ket qua (a + b)
}
int main(int argc, char ** argv)
{
int x, y;
cout << "Nhap 2 so x, y de tinh tong!!" << endl;
cin >> x >> y; // nhap vao 2 so x,y
cout <<"Tong cua 2 so x + y = "<< hamTinhTong2So(x, y)<<endl;
system("pause");// dung chuong trinh o dong nay
return 0;// ket thuc ham main
}
- Lưu ý : Hàm return có thể trả về kết quả kiểu con trỏ, giá trị số, biểu thức, giá trị boolean đúng sai, kết quả.
Bài liên quan
nếu a nhớ k lầm thì
return
có thể trả về bất cứ thứ gì (struct, class…) hoặc không trả về gì cả, đơn giản chỉ là để kết thúc hàm.Lệnh return trong hàm đệ quy nó mang nghĩa quay lại những trạng thái được lưu trong stack trước đó.
Ví dụ:
Cả 2 update lên Wiki đi
“Lệnh return trong hàm đệ quy nó mang nghĩa quay lại những trạng thái được lưu trong stack trước đó.”
bác cho em hỏi thêm là tại sao nó(hàm đệ quy) lại phải “quay lại những trạng thái được lưu trong stack trước” mà ko thoát luôn tại thời điểm return nhỉ?. cảm ơn bác!
return
chỉ có nghĩa là trả “quyền điều khiển” (hay con trỏ chương trình) lại cho hàm đã gọi nó mà thôi, chứ không phải “thoát” gì hết.Khi rộng giảng thì để hiện thực khái niệm hàm, cần phải làm ba công việc:
Chuẩn bị rút khỏi hàm:
ret abcd
)ok, tks bác @rogp10 e thấy trên youtube có clip này khá dễ hiểu, tiện share lên đây cho ae nào còn thắc mắc