Chức năng in trong cpp [trùng lặp]
Oct 25 2020
Tại sao bất cứ khi nào tôi in một hàm trong cpp, nó sẽ in ra 1. tức là
#include <iostream>
using namespace std;
void f1(){
cout<<"called function f";
}
int f2(){
cout<<"called f2";
return 1;
}
int main(){
cout << f2 <<endl; // prints 1
cout << f1 <<endl; // still prints 1
}
Tôi chỉ tự hỏi tại sao nó in 1.
Cảm ơn bạn đã giúp đỡ
Trả lời
1 MikeCAT Oct 25 2020 at 20:20
Có vẻ như nó đang đánh giá nếu các hàm (được chuyển đổi thành con trỏ thành các hàm) không phải là null, trả về truevà in truenhư 1. Điều này có thể được xác nhận bằng cách thêm cout << std::boolalpha;và thấy đầu ra được thay đổi thành true.
#include <iostream>
using namespace std;
void f1(){
cout<<"called function f";
}
int f2(){
cout<<"called f2";
return 1;
}
int main(){
cout << std::boolalpha;
cout << f2 <<endl; // prints true
cout << f1 <<endl; // also prints true
}