Bài giảng Lập trình cơ bản: Bài 6 - Chu Thị Hường
lượt xem 5
download
Bài giảng Lập trình cơ bản: Bài 6 Con trỏ và xâu ký tự, cung cấp cho người đọc những kiến thức như: giới thiệu về con trỏ; các toán tử con trỏ; gọi hàm tham chiếu với đối số con trỏ; biểu thức con trỏ và các phép toán số học;...Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình cơ bản: Bài 6 - Chu Thị Hường
- L P TRÌNH CƠ B N CON TR VÀ XÂU KÝ T Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT 1
- N I DUNG Con tr Xâu ký t Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Gi i thi u: Các bi n chúng ta ã bi t và s d ng trư c ây u là bi n có kích thư c và ki u d li u xác nh. Ngư i ta g i các bi n ki u này là bi n tĩnh. Bi n tĩnh có m t s h n ch : C p phát ô nh dư, gây ra lãng phí ô nh . C p phát ô nh thi u, chương trình th c thi b l i. Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Gi i thi u: Bi n con tr (pointer) v i các c i m: Bi n con tr không ch a d li u mà ch ch a a ch c a d li u hay ch a a ch c a ô nh ch a d li u. Kích thư c c a bi n con tr không ph thu c vào ki u d li u, luôn có kích thư c c nh là 2 byte. Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Bi n con tr : Các giá tr c a chúng ch a a ch các ô nh . Các bi n thông thư ng ch a giá tr c th (tham chi u tr c ti p) count 7 Con tr ch a a ch c a các bi n có giá tr c th (tham chi u không tr c ti p) Tham chi u không tr c ti p là con tr giá tr countPtr count 7 Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Khai báo con tr : * ; * ư c s d ng v i các bi n con tr : int *myPtr; Khai báo m t con tr tr t i ki u int (con tr c a ki u int *) Các con tr yêu c u s d ng d u * trư c m i khai báo bi n: int *myPtr1, *myPtr2; Có th khai báo con tr tr t i b t kỳ ki u d li u nào. Kh i t o con tr là 0 ho c NULL ho c m t a ch 0 và NULL tr t i Nothing (NULL ư c ưu tiên s d ng hơn) Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Các toán t con tr : & (Toán t a ch - address operator): Tr v a ch c a toán h ng int y = 5; int *yPtr; yPtr = &y; /* yPtr l y a ch c a y yPtr “tr t i” y */ y yptr y 5 500000 600000 600000 5 yPtr a ch c a y là giá tr c a con tr Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Các toán t con tr : * (Truy c p n i dung ô nh - indirection/dereferencing operator ): Tr v toán h ng c a con tr tr n: *yptr returns y (b i vì yptr tr t i y) Con tr không tham chi u (toán h ng c a *) ph i là m t giá tr (không là h ng) * và & là hai toán t ngư c nhau Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Các toán t con tr : Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Các toán t con tr : Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR G i hàm tham chi u v i i s con tr : Truy n a ch c a i s s d ng toán t & Cho phép ta thay i th c s trên ô nh M ng không truy n v i & b i vì tên m ng ã là m t con tr . Toán t * ư c s d ng như bi n trong thân hàm: void double( int *number ) { *number = 2 * ( *number ); } Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR const pointers Tr n m t ô nh c nh Ph i kh i t o khi khai báo int *const myPtr = &x; Ki u int *const – H ng con tr ki u int const int *const Ptr = &x; const pointer to a const int x có th thay i, nhưng không th thay i *Ptr Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR const pointers int main() { int x, y; int * const ptr = &x; *ptr = 7; // Cho phép ptr = &y; // Error } Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Bi u th c con tr và các phép toán s h c Các phép s h c có th th c hi n trên con tr : Increment/decrement pointer (++ or --) C ng s nguyên v i pointer( + or += , - or -=) Các con tr có th tr cho nhau Các toán t trên vô nghĩa tr khi th c hi n trên m ng. Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Bi u th c con tr và các phép toán s h c Ví d 5 ph n t trong m ng int m i ph n t chi m 4 byte. vPtr tr t i ph n t u tiên v[ 0 ] at location 3000 (vPtr = 3000) vPtr += 2; t vPtr t i 3008 vPtr tr t i v[ 2 ] (tăng 2), con tr tr t i vùng nh các vùng nh hi n t i hai ph n t (mõi ph n t là 4 byte nên tr n 3008) location 3000 3004 3008 3012 3016 v[0] v[1] v[2] v[3] v[4] pointer variable vPtr Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Bi u th c con tr và các phép toán s h c Ví d 5 ph n t trong m ng int m i ph n t chi m 4 byte. vPtr2 = v[ 2 ]; vPtr = v[ 0 ]; vPtr2 - vPtr ư c 2 Các con tr cùng ki u có th gán cho nhau Con tr không cùng ki u thì ph i ép ki u. Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Con tr và m ng M ng và con tr có quan h g n gũi nhau Tên m ng là m t con tr h ng Con tr có th xác nh các ph n t m ng Khai báo m ng b[ 5 ] và con tr bPtr set chúng b ng nhau: bPtr = b; Tên c a m ng (b) là a ch c a ph n t u tên: bPtr = &b[ 0 ] Con tr bPtr ư c gán n ph n t u tiên c a m ng b Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Con tr và m ng Truy c p các ph n t m ng 1 chi u theo d ng con tr theo các quy t c sau: &[0] ⇔ &[]⇔+ [] ⇔*( + ) Ph n t b[ 3 ] Có th truy c p b i *( bPtr + 3 ) Có th truy c p b i bptr[ 3 ] bPtr[ 3 ] như là b[ 3 ] Có th truy c p b ng s d ng các phép toán s h c trên m ng: *( b + 3 ) Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Con tr và m ng Truy c p các ph n t m ng nhi u chi u theo d ng con tr theo các quy t c sau: int a[n][m]; int *aPtr; aPtr=a; Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
- CON TR Con tr và m ng Truy c p các ph n t m ng nhi u chi u theo d ng con tr theo các quy t c sau: a[0][0] ⇔ aPtr; a[0][1] ⇔ aPtr+1; a[0][2] ⇔ aPtr+2; ... a[1][0] ⇔ aPtr+m; a[1][1] ⇔ aPtr+m+1; ... a[n][m] ⇔ aPtr+n*m; Tương t như th i v i m ng nhi u hơn 2 chi u. Biên so n: Chu Th Hư ng – B môn HTTT – Khoa CNTT
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình cơ bản: Ngôn ngữ lập trình C
80 p | 70 | 17
-
Bài giảng Lập trình căn bản: Giới thiệu tổng quan
5 p | 113 | 13
-
Bài giảng Lập trình căn bản: Chương 1 - ThS. Nguyễn Cao Trí
20 p | 149 | 12
-
Bài giảng Lập trình căn bản: Chương 2 - ThS. Nguyễn Cao Trí
13 p | 108 | 9
-
Bài giảng Lập trình cỡ nhỏ
57 p | 70 | 6
-
Bài giảng Lập trình Cơ sở dữ liệu – Java: Bài 3.2 - Nguyễn Hữu Thể
30 p | 48 | 5
-
Bài giảng Lập trình cơ bản: Giới thiệu - TS. Ngô Quốc Việt
15 p | 98 | 5
-
Bài giảng Lập trình cơ bản: Bài 4 - Chu Thị Hường
46 p | 11 | 5
-
Bài giảng Lập trình cơ bản: Bài 7 - TS. Ngô Quốc Việt
16 p | 75 | 4
-
Bài giảng Lập trình cơ bản: Bài 8 - Chu Thị Hường
28 p | 11 | 4
-
Bài giảng Lập trình cơ bản: Bài 5 - Chu Thị Hường
27 p | 13 | 4
-
Bài giảng Lập trình cơ bản: Bài 3 - Chu Thị Hường
34 p | 12 | 4
-
Tập bài giảng Lập trình cơ bản
208 p | 30 | 4
-
Bài giảng Lập trình cơ bản: Bài 1 - Chu Thị Hường
32 p | 7 | 3
-
Bài giảng Lập trình Cơ sở dữ liệu – Java: Bài 3.1 - Nguyễn Hữu Thể
36 p | 32 | 3
-
Bài giảng Lập trình Cơ sở dữ liệu – Java: Bài 2 - Nguyễn Hữu Thể
34 p | 40 | 3
-
Bài giảng Lập trình cơ bản: Bài 7 - Chu Thị Hường
25 p | 5 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn