30/09/2018, 19:59
Thứ bậc ưu tiên của toán tử
Cho mình hỏi :
char c;
c=getchar() != '
';
\ vs
(c=getchar()) !='
';
trong
#include<iostream>
using namespace std;
int main(){
char c;
int nchar=0, nword=0, state=0;
cout << "Nhap cau cua ban vao: " << endl;
while ((c = getchar()) != '
'){// chổ mình không hiểu
nchar++;
if (c == ' ' ){
state = 0;
}
else if (state == 0){
state = 1;
++nword;
}
}
cout << nword <<" "<< nchar;
system("pause");
return 0;
}
thì nó khác nhau chổ toán tủ gán(=) với toán tử khác(!=) như thế nao vậy?, thứ bậc ưu tiên của nó như thế nào? cái nào xét trước? Và nếu bỏ ngoăc ra thì nó sẽ như thế nào? mình cảm ơn
Bài liên quan
Các toán tử logic có độ ưu tiên lớn hơn toán tử gán, nhưng toán tử dấu ngoặc đơn có độ ưu tiên lớn nhất (c=getchar())!=’\n’ sẽ thực hiện phép gán c=getchar() trước, sau đó mới so sánh với ‘\n’, kết quả trả về 0 hoặc khác 0 (trong C) hoặc trả về true hoặc false (trong C++). c=getchar()!=’\n’ sẽ thực hiện phép so sánh trước, nghĩa là giá trị trả về của hàm getchar() sẽ so sánh với ‘\n’ sau đó mới gán vào c.