cho em hỏi ngoài việc dùng trong != (khác) thì dấu ! dùng làm gì nữa ạ? tại em vừa tìm thấy đoạn code tìm UCLN trên mạng có cái này
int ucln( int a, int b) //UCLN
{
if (!a) return b;
return ucln(b%a, a);
}
cho em hỏi ngoài việc dùng trong != (khác) thì dấu ! dùng làm gì nữa ạ? tại em vừa tìm thấy đoạn code tìm UCLN trên mạng có cái này
int ucln( int a, int b) //UCLN
{
if (!a) return b;
return ucln(b%a, a);
}
thank you ^^, tại em vừa mày mò học C++ nên nhiều chỗ cơ bản chưa nắm rõ.
Dấu ! còn được dùng trong hàm printf hoặc cout, để dòng được xuất ra màn hình là câu cảm thán. Ví dụ:
printf("Anh yeu em!");
hay là
cout << "Anh yeu em!";

! là phủ định điều kiện a
if(!a) là tương đương với if(a==0)
??? lạ nhỉ

Nhưng if (!a) <=> if(a == 0) ???
Hoàn toàn chính xác như vậy.
if (a) có nghĩa là nếu a != 0, có thể đọc là nếu có a thì
if (! a) có nghĩa là nếu a == 0, có thể đọc là nếu không a thì
Ố ồ hay quá

Bác này tỏ tình trá hình =))
cái này vừa học vừa chơi haha
anh Đạt siêng dữ ^^ topic nào hầu như anh cũng reply ^^ em thay mặt mọi ng cảm ơn anh và các pro nhiều nghen <3 - Idol ^^
! là toán tử đảo ngược bit: từ 1 thành 0, từ 0 thành 1. Hiểu như vậy thì toàn diện hơn.
Toán tử ~ mới đảo bit O3O
Còn ! thì true thành false, false thành true thôi.
Như !3 = 0
Còn ~3 = 1100 (-4)
Có một cái nhiều người hay nhầm lẫn đáng tiếc về cái vụ này.
Đó là người ta dùng chuẩn mà không có true, false thì người ta thường phải tự define lấy theo kiểu
#define false 0
#define true (!false)
dẫn đến nhiều người lầm tưởng những số như khác 1 cũng sẽ bằng true, dẫn đến lúc code thế này
if (bien_nao_do_kieu_char == true) {
//do something
}
else {
//do something else
}
nếu bien_nao_do_kieu_char = 127 chẳng hạn, người ta nghĩ nó vào nhánh đầu nhưng nó lại nhảy vào nhánh else khiến họ rất băn khoăn.
mình nhầm 
chắc đọc là nếu ko phải a thì trả về b …
Một ví dụ cho bạn:
#include <conio.h>
#include <stdio.h>
int main(void)
{
int c;
int extended=0;
c=getch();
if(!c)
extended = getch();
if (extended)
printf("Extended");
else
printf("Not extended");
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?