Em nghĩ mặc định địa chỉ của 1 integer là 1 int*, mặc định địa chỉ của 1 char là 1 char*, thế nên mỗi lần cout địa chỉ của 1 char thì phải ép nó thành int* nó mới ra địa chỉ (vì địa chỉ phải là chuỗi số thập lục).
Code:
#include <iostream.h>
int main()
{
int x = 1;
cout << &x;
cout << endl;
char y = 'A';
cout << reinterpret_cast<int*>(&y);
cout << endl;
return 0;
}
Nhưng vẫn không hiểu tại sao chỗ này lại in ra 123 23 3
Code:
char arrC[4] = {'1','2','3', '\0'};
for(int x = 0; x < 3; ++x)
{
std::cout << &arrC[x] << " ";
}