1
Khoa Công Nghệ Thông Tin & Truyền Thông
Đại Học Cần Thơ
MẢNG - CON TRỎ -
MẢNG - CON TRỎ -
THAM CHIẾU
THAM CHIẾU
CHƯƠNG 5:
CHƯƠNG 5:
2
Mảng, Con Trỏ, Tham Chiếu
Mảng, Con Trỏ, Tham Chiếu
Mục tiêu
Giới thiệu các cách sử dụng mảng, con trỏ, và tham
chiếu
Nội dung
Mảng một chiều, nhiều chiều, bộ nhớ tĩnh
Con trỏ, tính toán con trỏ, bộ nhớ động
Con trỏ hàm, tham chiếu
Chương 5
3
Mảng
Truy xuất phần tử không tồn tại lỗi
vượt ngoài biên
Ví dụ: cout<<heights[-1]; cout<<heights[10];
Chương 5
5
Bộ Khởi Tạo Mảng
Bộ Khởi Tạo Mảng
Mỗi mảng có một bộ khởi tạo mảng
Ví dụ
Chuỗi là một mảng ký tự
Ví dụ: so sánh sự khác nhau của
char str[] = "HELLO"; và char str[] = {'H', 'E', 'L', 'L', 'O'};
int nums[3] = {5, 10, 15};
Bộ khởi tạo mảng
int nums[3] = {5, 10};
nums[2]
= ?
int nums[ ] = {5, 10, 15};
Kích
thước
mảng ?
Chương 5
6
it num = 10;
int *ptr1 = #
cout << *ptr1;
10
num
1000
1000
ptr1
2000
Chương 5
8
Bộ Nhớ Động - Tĩnh
Bộ Nhớ Động - Tĩnh
Bộ nhớ động (heap)
Vùng nhớ được cấp phát động trong thời gian thực thi
Bộ nhớ tính (stack)
Vùng nhớ được sử dụng để lưu trữ các biến toàn cục
và lời gọi hàm
Hai toán tử được sử dụng
new: cấp phát
delete: thu hồi
void Foo (void)
num2
Chương 5
10
Truyền Bằng Trị - Con Trỏ - Tham
Truyền Bằng Trị - Con Trỏ - Tham
Chiếu
Chiếu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Truyền bằng trị (đối tượng)
void Swap1 (int x, int y)
{
int temp = x;