30/09/2018, 16:20

Công dụng của dấu ! trong C++ là gì?

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);
}
TTmagic viết 18:33 ngày 30/09/2018
Toán tử - Operators /'ɔpəreitə/ Once introduced to variables and constants, we can begin to operate with them by using operators. //đoạn này a @ltd dịch hộ e phát :trollface: Toán tử gán (=) Định nghĩa: - toán tử này cho phép gán một giá trị cho biến x=69; // gán giá trị 69 cho biến x. y=5; x=y; // lúc này giá trị của x được thay thế bởi giả trị của y ( =5). x=y=z=10; // gán giá trị 10 cho cả ba biến x,y,z. phép gán luôn được viết theo chiều từ phải sang trái, không được viết ngược lại…
Phạm Đức Huy viết 18:23 ngày 30/09/2018

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õ.

viết 18:34 ngày 30/09/2018

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!";

kongdap viết 18:23 ngày 30/09/2018

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

Trần Hồng Phong viết 18:35 ngày 30/09/2018

??? lạ nhỉ

Nguyễn Minh Dũng viết 18:27 ngày 30/09/2018

Câu trả lời của @kongdap ngắn gọn mà cụ thể nhất.

Trần Hồng Phong viết 18:31 ngày 30/09/2018

Nhưng if (!a) <=> if(a == 0) ???

Nguyễn Minh Dũng viết 18:31 ngày 30/09/2018

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ì

Trần Hồng Phong viết 18:28 ngày 30/09/2018

Ố ồ hay quá

Trang Tuân viết 18:20 ngày 30/09/2018

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!”;

Bác này tỏ tình trá hình =))

Thu Thuỷ viết 18:21 ngày 30/09/2018

cái này vừa học vừa chơi haha

Tran Tien Duc Anh viết 18:23 ngày 30/09/2018

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 ^^

明玉 viết 18:35 ngày 30/09/2018

! 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.

*grab popcorn* viết 18:27 ngày 30/09/2018

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)

Bé tập Code viết 18:30 ngày 30/09/2018

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.

明玉 viết 18:25 ngày 30/09/2018

mình nhầm

Mercury Phạm viết 18:29 ngày 30/09/2018

chắc đọc là nếu ko phải a thì trả về b …

Quang Huy Nguyễn viết 18:27 ngày 30/09/2018

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;
}
*grab popcorn* viết 18:24 ngày 30/09/2018

A post was split to a new topic: Dấu % trong C++ là gì?

Bài liên quan
0