30/09/2018, 18:05
cách hoạt động Hàm trong c++?
xin mọi người cho em hỏi
#include <iostream>
#include <string>
using namespace std;
int giaTri(int x);
void main()
{
int a=4;
giaTri(a);
cout<<giaTri(a)<<endl;
system("pause");
}
int giaTri(int x)
{ x=5;
cout<<x<<endl;
return 0;
}
thì nó hiện tận 3 giá trị:
5
5
còn
#include <iostream>
#include <string>
using namespace std;
int giaTri(int x);
void main()
{
int a=4;
giaTri(a);
cout<<a<<endl;
system("pause");
}
int giaTri(int x)
{ x=5;
cout<<x<<endl;
return 0;
}
lại hiện ra chỉ ra 2 giá trị:
5
4
XIN MỌI NGƯỜI GIẢI THÍCH CÁCH CHƯƠNG TRÌNH NÀY HOẠT ĐỘNG VỚI Ạ
Bài liên quan
Ở CT 1,
giaTri(a) = gọi hàm lần 1.
Mà tham truyền cho hàm có giá trị là 4. Nhưng trong hàm bạn lại biến nó thành 5 và in ra. -> số 5 đầu tiên
Và như trên, in x trong hàm nên có số 5 thứ 2, nhưng khác ở chỗ là lần này bạn cout hàm ra. Nên
cout<<giaTri(a)<<endl;
in ra 0Tương tự ct 2. Vì sao giaTri(a) rồi mà in a vẫn ra 4 thì bạn xem qua bài con trỏ.
Đoạn này em nghĩ nó chỉ là thay giá trị thôi chứ ạ. Sao nó lại thực hiện lại hàm lần nữa ạ?
Nếu như thế hóa ra cứ có giaTri(a) ở đâu là nó lại thực hiện lại hàm à anh?
Đúng rồi bạn…
Mỗi lần trình biên dịch gặp lời gọi hàm là hàm sẽ được thực hiện…
vâng vậy em hiểu rồi cảm ơn mọi người nhiều ạ!