1. Trang chủ
  2. » Thể loại khác

CON TRỎ (Pointer)

31 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 699,5 KB

Nội dung

Chương CON TRỎ (Pointer) 1 Khái niệm  Một trỏ biến chứa địa ô nhớ Địa vị trí đối tượng khác nhớ  Ví du: float x; //x biến có kiểu float x=12.5; //x có giá trị 12.5 Và lúc này, biến x chiếm ô nhớ liên tiếp, giả sử ô nhớ có kích thước byte Địa nhớ  Địa ô nhớ số thứ tự byte dãy byte liên tiếp Địa tính hệ đếm 16  Ví dụ : int a[4]; Mỗi biến kiểu int chiếm bytes, nhớ dành ô nhớ cho biến a Và cách đánh địa sau: giả sử địa biến a[0] ffee Con trỏ  Con trỏ kiểu liệu đặt biệt dùng để quản lý địa ô nhớ  Con trỏ kiểu dùng để chứa địa biến kiểu ; nghĩa trỏ kiểu int dùng để chứa địa biến kiểu int, trỏ kiểu float dùng để chứa địa biến kiểu float  Cách khai báo sau: int * ; Ví dụ: int *pi; px  Có thể khai báo trỏ nhiều cấp, ví dụ: int * *ppi; float * * *pppf; Phép lấy địa biến  Kí hiệu: &  Cách sử dụng:&  Ví dụ: int *pi=&a; // pi giữ địa biến nguyên a  Lưu ý: Trong trường hợp trên, pi địa có giá trị địa &a, &pi địa giá trị địa &a mà nơi ghi nhận giá trị &a, đó: int **ppi=π // trỏ cấp Phép toán lấy giá trị địa mà trỏ trỏ tới Kí hiệu: * Cách sử dụng: * Ví dụ: int a= 10; // biến a có giá trị 10 int *pi; pi =&a; //pi giữ địa biến a *pi giá trị a bà 10 Ví dụ 1 int a=25, x; int *y; x=a; y=&a; a y x 25 y Ví dụ int a, *p; a=25; p=&a; m=*p ; Cho biết Giá trị m ? Phép toán lấy thành phần cấu trúc với trỏ  Kí hiệu: ->  Cách sử dụng: -> Ví dụ: T trỏ struct gồm thành phần a b T>a T->b giá trị thành phần a,b địa mà T trỏ vào Ghi chú: phép tốn nói thêm chương cấu trúc Chú ý  Cần ý việc thay đổi giá trị pi làm cho giá trị a thay đổi theo ngược lại  Khi ta khai báo: int a=10; int *pi=&a; // pi giữ địa biến a *pi=*pi +2; sẽ làm cho biến a có giá trị 12 Lưu ý: Việc sử dụng thao tác giá trị địa trỏ thực sau trỏ có địa 10 3.1 Cấp phát nhớ động C++ C++ cung cấp hai toán tử cấp phát nhớ động: new delete −Toán tử new cấp phát nhớ trả trỏ đến byte vùng nhớ cấp phát −Toán tử delete thu hồi vùng nhớ cấp phát trước tốn tử new 17 Lưu ý: Cần kiểm tra xem việc cấp phát nhớ có thành cơng hay khơng Nếu thành cơng, trỏ trỏ đến địa đầu khối nhớ cấp phát lúc thực thao tác trỏ Khi ta khai báo: int *pi; pi= new int; if (pi==NULL) { cout

Ngày đăng: 22/02/2023, 20:53