[r]
Trang 1Khoa Công Ngh Thông Tin & Truy n Thông ệ ề
Đ i H c C n Th ạ ọ ầ ơ
M NG - CON TR - Ả Ỏ
Trang 2M 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ỏ ế
Trang 3M ng ả
M ng ả (array)
G m m t t p các đ i tồ ộ ậ ố ượng cùng ki u và để ược
s p x p liên ti p trong b nhắ ế ế ộ ớ
M i ỗ ph n t m ng ầ ử ả được xác đ nh b i m t ị ở ộ ch ỉ
số bi u th v trí c a ph n t trong m ngể ị ị ủ ầ ử ả
Ph n t đ u tiên c a m ng luôn có ch s 0 ầ ử ầ ủ ả ỉ ố
S lố ượng ph n t trong m ng đầ ử ả ược g i là ọ kích
th ướ c c a m ngủ ả (c đ nh; xác đ nh trố ị ị ướ ) c
G m m ng m t chi u và m ng đa chi uồ ả ộ ề ả ề
Trang 4Bi n M ng ế ả
Đ ượ c đ nh nghĩa b ng cách đ c t kích ị ằ ặ ả
th ướ c m ng và ki u các ph n t c a nó ả ể ầ ử ủ
Ví d : ụ int heights[10];
Truy xu t 1 ph n t qua ch s m ng ấ ầ ử ỉ ố ả
Ví d : heights[0]= 210; cout<< heights[3];ụ
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];
Trang 5B Kh i T o M ng ộ ở ạ ả
M i m ng có m t ỗ ả ộ b kh i t o m ng ộ ở ạ ả
Chu i là m t m ng ký t ỗ ộ ả ự
Ví d : so sánh s khác nhau c a ụ ự ủ
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 ả ?
Trang 6Tham Chi u ế
M t tham chi u (reference) là m t bi t ộ ế ộ ệ
hi u (alias) cho m t đ i t ệ ộ ố ượ ng.
M t tham chi u ph i luôn độ ế ả ược kh i t o khi nó ở ạ
được đ nh nghĩaị
Có th kh i t o tham chi u t i m t h ngể ở ạ ế ớ ộ ằ
double num1 = 3.14;
double &num2 = num1;
3.14
num2
Trang 7Tham Chi u ế
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Truy n b ng tr (đ i t ề ằ ị ố ượ ng)
void Swap1 (int x, int y)
{
int temp = x;
x = y;
y = temp;
}
// Truy n b ng đ a ch (con tr ) ề ằ ị ỉ ỏ
void Swap2 (int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
// Truy n b ng tham chi u ề ằ ế
void Swap3 (int &x, int &y)
{
int temp = x;
x = y;
y = temp;
int main (void) {
int i = 10, j = 20;
Swap1(i, j); cout << i << ", " << j << '\n';
Swap2(&i, &j); cout << i << ", " << j << '\n';
Swap3(i, j); cout << i << ", " << j << '\n'; }
?
?