Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
1,14 MB
Nội dung
Giảng viên: Nguyễn Đức Hoàng Bộ môn Điều Khiển Tự Động Khoa Điện – Điện Tử Đại Học Bách Khoa Tp.HCM Email: ndhoang@hcmut.edu.vn MÔN HỌC MÔN HỌC !"#$%&'()* $+, $%-."/)012$ 3 45/."6789 $07'()0 %-."/:1 ; $"/<*%-)0)= ">7 ? @0 A 57"8.:1'BCD +-%- E( F G2H8 I-."/JK8L)0 %-D<MN1 0"/1%(2 0"/1%(2 0"/ 0"/ @ @ Đặng Thành Tín Đặng Thành Tín IO66789 IO66789 GS. Phạm Văn Ất GS. Phạm Văn Ất 4$289 4$289 Nguyễn Hữu Tuấn Nguyễn Hữu Tuấn 4$289IO6"67 4$289IO6"67 89 89 P$$ P$$ Thi giữa kỳ : 20% Thi cuối kỳ : 80% GQRST GQRST CHƯƠNG 9 CHƯƠNG 9 F F FUI$/ FU12$8V72H8 FU3G2H8)0( FUPWXW:10"072H8U8+*<WXW H21XW' FU;@08()*72H8)0( FU?Y%ZD FUAG2H8)0<M)M'5< FUE($72H8 FUFG2H8:172H8 FUPWXW:101 FUG2H88[<0 FU\] I$/ I$/ I$/ I$/ !" #$%&# '( ) ! ! * $ # +%# ,&# /�)1 +%# ,&#*"* $ #* $ #2+%# , " *" 3$ # 4 0)5 *"6#70)2 I$/ I$/ 8 ! " # %# , &# * $ 9 " : ;%# ,< ; 8 8*"!" #%# ,&#*"2 8*"6#!" #%# ,*"6# .-=!>?3)53 @? %# ,&##1A#BC3 D3$E0 %# ,F2GA@ D3E0%# ,F-H3 1= C2 I1'$2'72H8 I1'$2'72H8 L7$7 %H^H_2_82` ab cd+d^7cd^` e21^d^` f+` g^h7"/^g 7cfc` g^h7"/^g f+` g^%h7"/^g [...]... tượng c a một pointer là hằng VD: int i=1; const int *pi; pi = &i; (*pi)++; /* không hợp lệ */ i++; /* hợp lệ */ pi++; /* hợp lệ */ VD: const char *ps = “abcd”; char const *ps = “abcd”; Khai báo biến pointer (tt) Lưu ý: Vi c đặt const trư c hay sau dấu * trong khai báo pointer là kh c nhau const trư c * : pointer trỏ đến đối tượng hằng * trư c const : pointer hằng Khai báo biến pointer là một const ho c. .. khoảng c ch ( số phần tử ) giữa 2 pointer đó Phép c ng 2 pointer là không hợp lệ, pointer không đư c nhân chia với 1 số nguyên ho c nhân chia với nhau p = NULL : là con trỏ p không trỏ đến đâu c Chú ý : không đư c sử dụng biến con trỏ khi chưa đư c khởi gán Ví dụ : int a , *p ; scanf ( "%d", p ) ( sai ) => thay bằng c c lệnh : p = &a và scanf ( "%d“, p ) ( đúng) Pointer – Mảng Mảng 1 chiều và con trỏ Trong. .. ho c pointer trỏ đến đối tượng const thường đư c dùng để kiểm soát trị vì đôi khi ta không muốn thay đổi đối tượng đang Quy t c sử dụng con trỏ + Sử dụng tên con trỏ Giá trị c a một con trỏ là địa chỉ c a một biến nào đó Nội dung c a con trỏ c thể thay đổi VD: int *p, a[4]; p = &a[1]; /* p chứa địa chỉ phần tử a[1] */ p++; /* p chứa địa chỉ phần tử a[2] */ + Sử dụng dạng khai báo c a con trỏ C c phép... ",a[i][j]); } Mảng con trỏ Mảng con trỏ là mảng mà mỗi phần tử c a nó c thể chứa một địa chỉ nào đó Mảng con trỏ c nhiều kiểu VD: mỗi phần tử c a mảng con trỏ kiểu int sẽ chứa đư c địa chỉ kiểu int C pháp khai báo: kieu *ten_con_tro[kich_thuoc]; Ví dụ : double *a[50]; khai báo một mảng con trỏ kiểu double gồm 50 phần tử Mỗi phần tử a[i] c thể dùng để lưu trữ một địa chỉ kiểu double Mảng con trỏ Ví dụ... phép toán trên pointer Hai biến con trỏ c ng kiểu c thể gán cho nhau Ví dụ 1 : int a, * p, *q; float * f; a = 5 ; p = &a ; q = p ; /* đúng */ f = p ; /* sai do kh c kiểu */ f = ( float * )p ; /* đúng nhờ ép kiểu con trỏ nguyên về kiểu float */ Ví dụ 2 : int a ; char *c ; c = &a ; /* sai vì kh c kiểu */ c = ( char*)&a; /* đúng */ C c phép toán trên pointer (tt) Một biến pointer c thể đư c cộng, trừ với... for(i=0;i . Tuấn 4$2 89 IO6"67 4$2 89 IO6"67 89 89 P$$ P$$ Thi giữa kỳ : 20% Thi cuối kỳ : 80% GQRST GQRST CHƯƠNG 9 CHƯƠNG 9 F F FUI$/ FU12$8V72H8 FU3G2H8)0( FUPWXW:10"072H8U8+*<WXW H21XW' FU;@08()*72H8)0( FU?Y%ZD FUAG2H8)0<M)M'5< FUE($72H8 FUFG2H8:172H8 FUPWXW:101 FUG2H88[<0 FU] I$/ I$/ I$/ I$/ . g^7&1<M1u7t1vw ^g Ct]#%1'$2:128[ ab cd+dxd^7cd^7+` 7c fc`7+f+` +3 ^c x`^7+3 ^c x`^7+3^^ 7c x`gg< $7i72$8V $7i72$8V 72H8 72H8 I#8*". 72H8 j2>1+<l<Wh:172H8 <*m+81"Y I1'$2'72H8 I1'$2'72H8 72H8j ab cd+` ^2X 7c fc` 7c fc` g^%h7"/^g 7c f+` g^%h7"/^g 7c ` g^%h7"/^g ab 18^2X7Xn1'o` I1'$2'72H8 I1'$2'72H8 PWh:172H8"0j ab