01/10/2018, 08:19
Em đang tìm hiều về con trỏ trong C, nhưng đến phần này e có 2 điều sau k hiểu m.n giải thích dùm e với ạ
Có phải cái này nghĩa là khi khai báo 1 con trỏ bất kì kiểu dữ liệu nào thì ta đều đc cấp 2 byte bộ nhớ k ạ ? và 2 byte đó được chia làm máy ô ạ ?
Bài liên quan
Hi Nguyen Trong Dung.
1 Bạn cần hiểu con trỏ là gì.
2 Bạn cần hiểu cách quản lý bộ nhớ của máy tính. Cụ thể là quản lý địa chỉ ổ nhớ.
Con trỏ là 1 biến dùng để lưu trữ địa chỉ của 1 biên thông thường.
int *p = &a; có nghĩa là khởi tạo 1 con trỏ p và gán địa chỉ của a cho p ( p = &a).
còn cách quản lý của bộ nhớ máy tính thì e k rõ, a chỉ e dc k ạ ?
Hi Nguyen Trong Dung.
Con trỏ không phải là biến. Nó là 1 kiểu dữ liệu dùng để lưu trữ địa chỉ ô nhớ ( Có thể là địa chỉ ô nhớ đầu của biến, của 1 mảng, hàm, hoặc kiểu dữ liệu ảnh, file v.v.v… bất kể cái gì được lưu trong máy tính).
Bạn cần tìm hiểu các đặc điểm dặc trưng của 1 kiểu dữ liệu @_@!
anh ví dụ cho e kiểu int có những đặc điểm đặc trưng gì đc k ?
Hi Nguyen Trong Dung.
Kích thước theo byte, kích thước có phụ thuộc vào OS hay không. Thứ tự đọc byte, cách lưu trữ, phạm vi, ép kiểu, cách khai báo từ khóa v.v.v…
Đây là những gì mình nhớ. Bạn có thể tìm hiểu thêm.
Kích thước của con trỏ phụ thuộc vào nền tảng Os, ví dụ HĐH 32bit sẽ có con trỏ kích thước là 4 byte, 64 bit sẽ là 8 byte, lí do vì sao lại thế rất đơn giản, con trỏ là kiểu dữ liệu chứa địa chỉ của 1 biến khác do đó nó phải đảm bảo chứa được số nguyên bằng với địa chỉ của ô nhớ lớn nhất mà HĐH có thể quản lí được.
Vế 2, 1 bit sẽ là 1 ô nhớ, 4byte là bao nhiêu ô thì tự nhân lên thôi
Trong RAM đánh số từ 0—> ô nhớ cuối cùng, con trỏ là biến save địa chỉ ô nhớ, vậy nó có kích thước bao nhiêu khi ram của bạn là 4GB, 8GB có hàng tỉ ô nhớ
Mà k cần quan tâm kích thước của con trỏ, chỉ cần biết nó trỏ đến đâu, kiểu dữ liệu gì, rồi *contro mà lấy nội dung thôi
k quan tâm tới nó thì sao mà biết nó đc cấp bao nhiêu ? vậy malloc calloc và relloc để làm gì chứ ?
Bạn ám ảnh vấn đề này thế nhỉ, con trỏ luôn có kích thước bộ nhớ cố định, dữ liệu nó trỏ tới mới cần phải quan tâm, bạn đang quan tâm sai đối tượng rồi đấy
Mình chưa học tới phần đó bạn…
Sorry nếu có gì sai sót… bình thường chỉ cần quan tâm nội dung con trỏ là ok rồi