1. Trang chủ
  2. » Hoá học lớp 10

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

10 5 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 114,72 KB

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

Nội dung

[r]

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

Nội Dung

 Con trỏ

 Biến kiểu con trỏ

 Quản lý vùng nhớ

 Toán tử con trỏ

 Mảng động

 Khai báo & sử dụng

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

Trang 3

Giới Thiệu

 Định nghĩa:

 Địa chỉ vùng nhớ máy tính của một biến

 Vùng nhớ máy tính

 Chia nhỏ thành các byte

 Đánh số thứ tự lần lượt (hệ 16)

 Địa chỉ được sử dụng làm tên cho biến

 Con trỏ đã sử dụng

 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

 p bằng địa chỉ của v1

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

1 {

2 int *p, v1, v2;

3 v1 = 10; v2 = 20;

4 p = &v1;

5 p = &v2;

p

20 v2

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)

1 {

2 int *p, v1, v2;

3 v1 = 10; p = &v1;

4 cout << *p;

5 v2 = 20; p = &v2;

6 cout << *p;

7 }

0x22ff32

p

20 v2

0x22ff32

0x44ab12

p

10 v1

0x44ab12

Trang 9

Toán Tử =

 Gán giá trị

 Dòng 3, 4: p chỉ tới v1, q chỉ tới v2

 Dòng 5: sử dụng toán tử * truy cập vùng tới nhớ con trỏ quản lý

*pv1, *qv2, dòng 5 tương đương v1 = v2;

1 {

2 int v1 = 10, v2 = 20;

3 int *p = &v1;

4 int *p = &v2;

5 *p = *q;

q

20 v2

0x22ff32

0x44ab12

p

10 20 v1

0x44ab12

Trang 10

Toán Tử =

 Gán con trỏ

 Dòng 3, 4: p chỉ tới v1, q chỉ tới v2

 Dòng 5: gán p bằng q

 p không quản lý v1

pq cùng quản lý v2

1 {

2 int v1 = 10, v2 = 20;

3 int *p = &v1;

4 int *p = &v2;

5 p = q;

q

20 v2

0x22ff32

0x44ab12

p

10 v1

0x44ab12

0x22ff32

Ngày đăng: 09/03/2021, 06:33

TỪ KHÓA LIÊN QUAN

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

w