Ký hiệu & được dùng như một toán tử trong C++. Nó xuất hiện ở 2 nơi: toán tử bitwise AND và toán tử lấy địa chỉ con trỏ.
Bitwise AND
Toán tử bitwise AND (&) so sánh từng bit của toán hạng đầu với bit tương ứng của toán hạng thứ hai. Nếu cả hai bit đều là 1, bit kết quả được đặt thành 1. Ngược lại, đặt thành 0. Cả hai toán hạng phải là kiểu nguyên.
Ví dụ
#include <iostream>
using namespace std;
int main() {
unsigned short a = 0x5555; // mẫu 0101...
unsigned short b = 0xAAAA; // mẫu 1010...
cout << hex << (a & b) << endl;
}
Đầu ra
0
Toán tử lấy địa chỉ (Address Of)
C++ cung cấp hai toán tử con trỏ: Toán tử lấy địa chỉ (&) và Toán tử giải tham chiếu (*).
Con trỏ là biến chứa địa chỉ của biến khác. Biến có thể là bất kỳ kiểu dữ liệu nào bao gồm đối tượng, cấu trúc hoặc lại là con trỏ.
Toán tử & là toán tử đơn ngả trả về địa chỉ của biến (r-value) được chỉ định bởi toán hạng của nó. Ví dụ:
Ví dụ
#include <iostream>
using namespace std;
int main() {
int var = 3000;
int *ptr;
int val;
ptr = &var; // lấy địa chỉ var
val = *ptr; // lấy giá trị tại ptr
cout << "Value of var: " << var << endl;
cout << "Value of ptr: " << ptr << endl;
cout << "Value of val: " << val << endl;
return 0;
}
Đầu ra
Value of var: 3000 Value of ptr: 0xbff64494 Value of val: 3000