1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Giới thiệu lập trình: Con trỏ - TS. Lê Nguyên Khôi

23 7 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 23
Dung lượng 172,76 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Giới thiệu lập trình: Con trỏ cung cấp cho người học các kiến thức: Biến kiểu con trỏ, quản lý vùng nhớ, toán tử con trỏ, khai báo & sử dụng, các phép toán với con trỏ. Mời các bạn cùng tham khảo nội dung chi tiết.

Trang 1

Giới Thiệu Lập Trình

Con Trỏ

TS Lê Nguyên Khôi Trường Đại học Công nghệ, ĐHQGHN

Trang 2

 Khai báo & sử dụng

 Các phép toán với con trỏ

Trang 3

 Truyền tham số theo kiểu tham chiếu

 Địa chỉ của tham số được truyền

Trang 4

Biến Con Trỏ

 Con trỏ là “kiểu dữ liệu”

 Kiểu địa chỉ vùng nhớ

 Có thể dùng biến để lưu giá trị kiểu con trỏ

 Không phải kiểu int, double

Địa chỉ của vùng nhớ dùng lưu dữ liệu kiểu

int, double

 Ví dụ: double * p;

Khai báo p là biến kiểu con trỏ double

Lưu địa chỉ vùng nhớ kiểu double

Trang 5

Biến Con Trỏ – Khai Báo

 Khai báo con trỏ giống biến kiểu dữ liệu khác

 Thêm * vào trước tên biến

 Ký hiệu * phải đặt trước mỗi biến con trỏ

 Ví dụ: int *p1, *p2, v1, v2;

 p1, p2 biến kiểu con trỏ int

 v1, v2 biến kiểu int

 Sử dụng p1, p2 lưu địa chỉ các biến kiểu int

 Sử dụng p1, p2 lưu địa chỉ của v1, v2

Trang 6

Địa Chỉ & Số Nguyên

 Con trỏ là địa chỉ

 Địa chỉ là số nguyên

 Con trỏ KHÔNG là số nguyên

 C++ ép con trỏ phải được sử dụng như địa chỉ

 Không thể được sử dụng như số nguyên

 Mặc dù đó là số nguyên!!!

Trang 7

Toán Tử &

 Toán tử & trả về địa chỉ của biến

 Dòng 4: đặt biến con trỏ p chỉ tới biến v1

0x22ff32

0x44ab12

p

10 v1

0x44ab12

Trang 8

Toán Tử *

 Toán tử * truy xuất giá trị của vùng nhớ được quản lý (lưu) bởi con trỏ

 Dòng 4: in ra 10 (giá trị biến v1, mà p chỉ tới)

 Dòng 6: in ra 20 (giá trị biến v2, mà p chỉ tới)

0x22ff32

0x44ab12

p

10 v1

0x44ab12

Trang 9

0x44ab12

p

10 20 v1

0x44ab12

Trang 10

0x44ab12

p

10 v1

0x44ab12

0x22ff32

Trang 12

Toán Tử new

 Sử dụng toán tử new để tạo một vùng nhớ mới cho con trỏ, vùng nhớ này không có tên

int * p = new int;

 Khởi tạo một vùng nhớ mới cho con trỏ p, giá trị tại vùng nhớ này không biết

int * p = new int(10);

 Khởi tạo một vùng nhớ mới cho con trỏ p, giá trị tại vùng nhớ này được khởi tạo là 10

Trang 13

? p2

Trang 14

Toán Tử delete

 Sử dụng toán tử delete để giải phóng vùng nhớ động được tạo ra bởi toán tử new

 Lưu ý: chỉ giải phóng vùng nhớ được tạo ra bởi

new, không phải xóa biến con trỏ p

{

int * p = new int;

… … … delete p;

… … … }

Trang 15

Toán Tử delete

 Vùng nhớ động có thể được trả về bởi hàm

 Vùng nhớ động chỉ được giải phóng khi sử

dụng delete, do đó vùng nhớ động tạo ra

trong hàm không bị xóa sau khi kết thúc hàm

 Chỉ các biến khai báo trong hàm bị xóa, trong

đó có biến con trỏ p

int * f(int * q) {

int * p = new int;

… … … return p;

}

Trang 16

Mảng Động

 Biến mảng thực chất là biến con trỏ

 Mảng thông thường (int a[10])

 Độ dài mảng cố định

 Không thể thay đổi độ dài sau khi khai báo

 Có thể coi là con trỏ hằng (con trỏ tĩnh)

 Mảng động (int * a = new int[10])

 Độ dài mảng có thể thay đổi sau khi khai báo

 Sử dụng lại toán tử new

int * a = new int[10];

Trang 17

p chỉ tới địa chỉ mà a đang chỉ tới

 Nhưng không được phép (lỗi dịch)

a = p;

a là hằng, không thay đổi giá trị của a

Trang 18

Nhắc Lại: cstring & Lớp string

Trang 19

Mảng Động

 Hạn chế của mảng thông thường:

 Phải khai báo độ dài trước

 Độ dài mảng có thể không biết tới khi chạy chương trình

 Phải ước lượng độ dài lớn nhất

 Lãng phí bộ nhớ

 Mảng động

 Có thể tăng và giảm khi cần thiết

Trang 23

Con Trỏ Trong C++

 Con trỏ là khối kiến thức đặc biệt quan trọng trong C++

 Phải nắm vững khái niệm con trỏ cũng như

thao tác với con trỏ

 Con trỏ sẽ được sử dụng trong các kiểu dữ

liệu phức tạp

 INT 2203 Cấu trúc Dữ liệu & Giải thuật

Ngày đăng: 08/05/2021, 15:29

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w