Trang chủ Tin Học Lớp 8 Help mik đag hc về con trỏ trong C++ mà...

Help mik đag hc về con trỏ trong C++ mà chả hiểu j cả Tại sao giá trị của ch = 1byte mà giá trị con trỏ của ch lại bằng 8byte ???#include using name

Câu hỏi :

Help mik đag hc về con trỏ trong C++ mà chả hiểu j cả Tại sao giá trị của ch = 1byte mà giá trị con trỏ của ch lại bằng 8byte ???

image

Lời giải 1 :

Có nhiều bạn nghĩ kích thước của kiểu char là 1 nên kích thước con trỏ của char cũng sẽ là 1 (điều này là sai hoàn toàn).

Có 2 trường hợp sau đây: 

TH1: Nếu build code của bạn trên x86 thì kết quả sẽ là 4

TH2: Nếu build code của bạn trên x64 thì kết quả sẽ là 8

Để giải thích cho điều này:

Vì giá trị của 1 con trỏ là 1 địa chỉ:

+ Trên x86 sẽ có $2^{32}$ địa chỉ khác nhau ($2^{32}$ ô nhớ, tương đương với kiểu dữ liệu có kích thước 4 byte)

+ Trên x64 sẽ có $2^{64}$ địa chỉ khác nhau ($2^{64}$ ô nhớ, tương đương với kiểu dữ liệu có kích thước 8 byte)

$\to$ Con trỏ phải được cấp phát đủ bộ nhớ để lưu trữ các địa chỉ.

$\Rightarrow$ Và từ đây, ta có: sizeof(pointer) phụ thuộc vào nền tảng mà bạn build code.

Thảo luận

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần, sang năm lại là năm cuối cấp áp lực lớn dần nhưng các em vẫn phải chú ý sức khỏe nhé!

Nguồn : ADMIN :))

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK