-
17-09-2014, 10:42 AM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Giúp em với, thắc mắc mấy ngày nay chưa giải được.
Em có học c++ trên mạng và có đoạn code sau
#include <iostream>
using namespace std;
int main()
{
cout << boolalpha; // Outputs boolean values
// as true or false
bool res = false;
int a, b, c;
a = b = c = 0;
res = ++a || ++b && ++c;
cout << '
'
<< " res = " << res
<< ", a = " << a
<< ", b = " << b
<< ", c = " << c << endl;
a = b = c = 0;
res = ++a && ++b || ++c;
cout << " res = " << res
<< ", a = " << a
<< ", b = " << b
<< ", c = " << c << endl;
return 0;
}
Output:
res = true, a = 1, b = 0, c = 0
res = true, a = 1, b = 1, c = 0
Bác nào giải thích dùm em tại sao output của đoạn code trên cái thứ nhất là a = 1, b = 0, c = 0 ; còn cái thứ 2 lại là a = 1, b = 1, c = 0 [IMG]images/smilies/Cry.gif[/IMG]
Sao không phải a=1, b=1, c=0 [IMG]images/smilies/thinking.gif[/IMG]
P/s Tiện thể chỉ em cách đăng bài với, em là thành viên mới nên chưa biết gì hết.View more random threads:
- [Hỏi về con trỏ trong C]
- lập trình kiểu mảng ai giúp với
- cần giúp về thuật toán các bài chuỗi sau
- Tìm hiểu Cách duyệt Cây Tiền Tố. Giúp mình
- các bác giúp em sửa đoạn code này với
- cau len if(x) {};
- mình mới học về c nên chưa hiểu bài này lắm mong mọ người giúp
- Kiểm tra xem các chữ số của số nguyên dương n có giảm dần/ tăng dần từ trái sang phải không.
- Sửa hộ lỗi bài struct và FILE giúp mình
- giúp bài tập c, tạo và quản lí danh sách đặc
-
18-09-2014, 01:57 PM #2
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Toán tử && được nhóm ưu tiên hơn toán tử ||. Cả 2 cùng được tính từ trái qua phải.
(VT = vế trái, VP = vế phải)
VT || VP thì nếu VT == true (hoặc VT khác 0) thì toán tử || sẽ ko xét tiếp VP. Còn VT == false (VT == 0) thì nó mới xét tiếp VP.
VT && VP thì nếu VT == false (hoặc VT == 0) thì toán tử && sẽ ko xét tiếp VP. VT == true (hoặc VT khác 0) thì nó mới xét tiếp VP.
với: ++a || ++b && ++c
hiểu là ++a || (++b && ++c) vì ưu tiên nhóm && hơn nhóm ||
VT của toán tử || là ++a trả về 1, 1 khác 0, vậy ở đây || sẽ ko xét tiếp VP, toán tử && cũng ko được xét tới => b, c ko được tăng 1 đơn vị => a=1, b=0, c=0.
với: ++a && ++b || ++c
hiểu là (++a && ++b) || ++c vì ưu tiên nhóm && hơn nhóm ||
VT của toán tử && là ++a trả về 1, 1 khác 0, vậy ở đây && sẽ xét tiếp VP. VP của toán tử && là ++b cũng là 1 khác 0, vậy phép toán && này trả về 1. Tiếp theo là xét tiếp toán tử ||. VT của toán tử || là kết quả của phép tóa && trước đó, có giá trị là 1. 1 khác 0 => ko xét tiếp vế phải của ||. Như vậy c ko được tăng 1 đơn vị => a=1, b=1, c=0.
cứ nghĩ phép || là +, phép && là nhân. a || b && c tương đương với a + bc, a && b || c tương đương với ab + c.
-
20-09-2014, 08:23 AM #3
Silver member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cảm ơn anh, giờ thì em hiểu rùi !
NGUỒN SỈ ÁO KHOÁC DENIM NỮ TPHCM CHẤT LƯỢNG CAO Bạn muốn nhập sỉ áo khoác denim nữ để bắt đầu việc buôn bán Online phong cách nhưng lại chưa có kinh nghiệm, muốn sắm xưởng sỉ xống áo vừa có thể giải...
Xưởng sỉ áo khoác jeans denim giá...