Lập trình

Lập trình

Thứ Năm, 5 tháng 6, 2014

Sự khác nhau giữa con trỏ và cấp phát động

+ Bản thân con trỏ chỉ lưu được địa chỉ tức là nó luôn có độ rộng là 4 bytes (địa chỉ là kiểu nguyên)
  chú ý : khai báo kieu_du_lieu * p ; co thể hiểu theo 2 cách :
          - khai báo một con trỏ thông thường // quản lý một biến
 - khai báo mảng động do con trỏ p quản lý , chương trình nhận biết cách này khi ta
         p = new kieu_du_lieu[so_luong] .
+ Cấp phát động :
   Kiểu_dữ_liệu * p = new kiểu_dữ_liệu[n] ; (kiểu dữ liệu là : int , char , .... ) .
   sau khi gặp khai báo này chương trình tạo vùng nhớ có độ rộng là n*kiểu_dữ_liệu và
   khai báo (tạo) một con trỏ p trỏ đến vùng nhớ vừa tạo nên nó giống mảng
   n ô nhớ của n phần tử được sắp xếp liên tiếp nhau trong không gian bộ nhớ giống hệt mảng
    (giống véc-tơ )
 
   cũng có thể hiểu như cách sau :
   kiểu_dữ_liệu * p ;        // tạo con trỏ để quản lý ô nhớ
   p = new kiểu_dữ_liệu[n] . // tạo ô nhớ việc này được thực hiện khi gặp toán tử new
 
**>> trong kiểu dữ liệu cấu trúc(struct) con trỏ và cấp phát động rất khác nhau vì bản thân cấp
phát động mang tính chất của kiểu dữ liệu struct rồi còn con trỏ thì chưa nên nó phải được trỏ đến
biến cấu trúc khác thì mới truy nhập(xuất) được dữ liệu như cấp phát động 

Không có nhận xét nào:

Đăng nhận xét