Thắc mắc về giá trị trả về của hàm kiểu dữ liệu int

int isSafe( int x,  int y,  int sol[N][N])
{
     return (x >= 0 && x < N && y >= 0 && y < N
             && sol[x][y] == -1);
}

Em có đọc code trên geek for geek và em không hiểu đoạn code này nó retrurn cái gì, em không thấy kiểu số nguyên nào cả. Mọi người giải thích cho em với ạ. Em cảm ơn.

Khi post code lên DNH thì bạn dùng markdown cho code nha:


Trong C++, giá trị true được ép kiểu ngầm định thành 1, false là 0 và ngược lại. Nghĩa là nếu đoạn này:

(x >= 0 && x < N && y >= 0 && y < N && sol[x][y] == -1);

có giá trị là true thì hàm sẽ trả về 1, false thì là 0.

6 Likes

hay,mình cảm ơn ạ :sunny:

Mình xin bổ sung thêm một tí, đây là code của C chứ không phải C++. C ban đầu không có kiểu boolean, nên người ta dùng luôn kiểu int để thay. Còn code C++ thì người ta return thẳng kiểu bool rồi.

Thêm một ý nữa là, bên C và C++, thì giá trị 0 tương đương với false, và giá trị khác 0(đa số đều lấy 1) thì sẽ tương đương với true

4 Likes

Trong C/C++ thì False là 0 còn #0 là True thông thường giá trị mặc định sẽ là 1.

2 Likes

Okkk anh và em nghĩ hàm int đó vẫn dùng được cho c++ do em đang đọc phần c++ của geekforgeek

Thứ nhất, bạn hoàn toàn có thể viết code asm trong file source c++ bình thường, vấn đề là lúc đó bạn có được xem là đang code C++ không?

Thứ hai, code trên trang geekforgeek cũng chứa nhiều thành phần rất tào lao. Nên nếu bạn có ý định xem code trên đó là chuẩn mực và học theo thì có lẽ bạn nên suy nghĩ lại.

4 Likes

Vâng em cảm ơn :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?