Tôi tự hỏi tại sao trong chương trình sau đây sizeof(int)
trả về một giá trị khác với sizeof(int*)
.Tại sao sizeof (int) khác với sizeof (int *)?
Dưới đây là chương trình nhỏ:
int main(){
std::cout<<sizeof(int)<<endl;
std::cout<<sizeof(int*)<<endl;
return 0;
}
Và đây là kết quả:
4
8
Đến bây giờ tôi nhớ kích thước của một con trỏ số nguyên là 4byte (trình biên dịch gcc). Làm thế nào tôi có thể kiểm tra kích thước chính xác của một con trỏ? Có phụ thuộc vào máy tính không?
Tôi đang chạy ubuntu 12,04
# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
là kích thước của con trỏ không phải là hằng số (kích thước tiêu chuẩn) 8 byte.
Hệ điều hành 64 bit? – gliderkite
@ ahenderson- Bạn có chắc chắn rằng tất cả các con trỏ được đảm bảo có cùng kích thước không? – templatetypedef
Cũng thêm đầu ra của 'uname -a' hoặc' file ' –
0xC0000022L