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 ô ạ ?

Tao Không Ngu. viết 10:27 ngày 01/10/2018

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ớ.

Nguyen Trong Dung viết 10:30 ngày 01/10/2018

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 ạ ?

Tao Không Ngu. viết 10:31 ngày 01/10/2018

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 @_@!

Nguyen Trong Dung viết 10:28 ngày 01/10/2018

anh ví dụ cho e kiểu int có những đặc điểm đặc trưng gì đc k ?

Tao Không Ngu. viết 10:30 ngày 01/10/2018

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.

Quân viết 10:26 ngày 01/10/2018

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

superuser10 viết 10:28 ngày 01/10/2018

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

Nguyen Trong Dung viết 10:29 ngày 01/10/2018

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ứ ?

Quân viết 10:32 ngày 01/10/2018

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

superuser10 viết 10:24 ngày 01/10/2018

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

Bài liên quan
0