Chương 3: Mảng và con trỏ
Số trang: 29
Loại file: ppt
Dung lượng: 201.00 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Mảng (Array):Là một tập các vị trí nhớ liên tiếp nhau.Các phần tử trong mảng có cùng tên và cùng kiểu.Truy nhập tới phần tử trong mảng:Xác định thông qua tên mảng và chỉ số:arrayname[ position number ].Phần tử đầu tiên ở vị trí thứ 0.
Nội dung trích xuất từ tài liệu:
Chương 3: Mảng và con trỏCHƯƠNG3:Mảngvàcontrỏ 1.Mảng Mảng(Array) Làmộttậpcácvịtrínhớliêntiếpnhau Cácphầntửtrongmảngcócùngtênvàcùngkiểu. Truynhậptớiphầntửtrongmảng Xácđịnhthôngquatênmảngvàchỉsố: arrayname[positionnumber] Phầntửđầutiênởvịtríthứ0 Khaibáomảng typearrayName[arraySize]; int c[ 10 ]; // mảng c gồm 10 số nguyên float d[ 3284 ]; // mảng d gồm 3284 số thực Cóthểkhaibáonhiềumảngcùngkiểu int b[ 100 ], x[ 27 ]; Khởitạomảng Sửdụngvònglặpfor:gángiátrịchotừngphầntử trongmảng. Sửdụngdanhsáchkhởitạo: int n[ 5 ] = { 1, 2, 3, 4, 5 }; Nếukhôngđủgiátrịkhởitạothìnhữngphầntửcònlạisẽ nhậngiátrịmặcđịnh. Nếugiátrịkhởitạonhiềuhơnkíchthướcmảngthìsẽbáolỗi. Gántấtcảcácphầntửvớicùngmộtgiátrị int n[ 5 ] = { 0 }; Nếukíchthướcmảngkhôngđượckhaibáothìdanhsách khởitạosẽxácđịnh: int n[] = { 1, 2, 3, 4, 5 }; //Mảngncó5phầntử Thamsốmảng Thamsốmảngđượcbiểudiễnbởikiểudữliệuvàkíchthướccủa mảng voiddisplay(float[n][m]); Hàmcóthểkhôngcầnbiếtkíchthướccủamảngnhưngphảibiết kíchthướccủamộtphầntửtrongmảng voidmyFunction(intn[]); voiddisplay(float[][m]); Khigọihàm,tachỉcầntruyềntênmảng int myArray[ 24 ]; myFunction( myArray); Mảngđượctruyềntheokiểutruyềnthamchiếu Hàmcóthểchỉnhsửadữliệucủacácphầntửtrongmảng Tênmảnglàđịachỉcủaphầntửđầutiên Vídụvềthamsốmảng#includeusingnamespacestd;voidprintarray(intarg[],intlength){ for(intn=0;nMảngnhiềuchiều Mảngnhiềuchiềuđượccoilàmảngcủa mảng. Khaibáo: doublesales[2][2]; sales[1][0]=2.5; Khởitạo: doublesales[2][2]={{1.2,3.0},{1.0,2.3}}; Xâukýtự Làmộtmảngcáckýtự Tấtcảcácxâukýtựđềukếtthúcvớiký tựnull(\0) Vídụ char string1[] = hello; Ký tự nullđượctựđộngbổsung. string1có6kýtự char string1[] = {h, e, l, l,o, \0’ }; Kiểudữliệustring stringlàmộtlớpchuẩntrongC++ Cáckýtựtrongstringđượcđánhtừ0 Khởitạomộtbiếnkiểustringnhưsau: strings1(“Man”); strings2=“Beast”; strings3; Tacóthểsửdụngcáctóantửtóanhọc,logic…trên đốitượngstring s3=s1; s3=“Neither”+s1+“nor”; s3+=s2; stringvàtoántử>> Hàmgetline(cin,stringstr):lưuthôngtin từluồngvàochuẩnđưavàostr. Vídụ: stringfull_name; cout2.Contrỏ Mỗibiếntrongchươngtrìnhchiếmmộtvùng nhớ,vídụbiếnkiểuintchiếm4bytenhớ. Vịtrícủavùngnhớđượcgọilàđịachỉcủa biến int i; Địa chỉ củai 0x1054 10101011 0x1055 00001111 0x1056 10001000 0x1057 11100011 char c; Địa chỉ củac 0x1058 00111011 short s; Địa chỉ của s 0x1059 10111100 0x1060 11001100Biếncontrỏ Biếncontrỏlàbiếnlưugiátrịcủađịachỉ vùngnhớ. Mỗikiểudữliệucómộtbiếncontrỏriêng: contrỏkiểuint,contrỏkiểuchar… C++sửdụng: Toántử&đểlấyđịachỉcủabiến Toántử*đểlấynộidungcủabiếnđượctrỏ. Vídụ:int i=17;int* ptr; // khai báo biến trỏ kiểu intptr= &i; // gán địa chỉ của biến i cho con trỏ ptrcout Biếncontrỏ…int i; 0x1054 17int* ptr; Đị ach ỉ ung N ộidptr=&i;cout Biếncontrỏ…int v; // khai báo biến v kiểu intint w; // khai báo biến w kiểu intint* p; // khai báo biến p kiểu con trỏ trỏ tới kiểu intp=&v; // gán địa chỉ của v cho con trỏ pv=3; // gán giá trị 3 cho v*p=7; // gán giá trị 7 cho vp=&w; // gán địa chỉ của w cho con trỏ p*p=12; // gán giá trị 12 cho w Contrỏhằng Khaibáohằng: constintresult=5; //resultlàhằng result=10; //sauđógánlạigiátrịthìC++sẽbáolỗi Khaibáocontrỏhằng: constchar*answer_ptr=FortyTwo; //answer_ptrlàcontrỏtrỏtớihằngkiểuchar Dữliệuđượctrỏbởicontrỏhằngthìkhông thểthayđổinhưngcontrỏthìcóthể. answer_ptr=FiftyOne;//đúng(answer_ptrlàbiếncontrỏ) *answer_ptr=X;//sai(*answer_ptrlàhằng) Contrỏhằng… Nếukhaibáo: char*constnameptr=Test; //name_ptrlàcontrỏhằng nameptr=New;//sai(name_ptrlàhằng) *nameptr=B;//đúng(*nameptrlàchar) Nếukhaibáonhưsauthìkhôngthể thayđổiđượccảcontrỏvànộidung củacontrỏ: constchar*consttitleptr=Title; Contrỏvàmảng Mảngcóthểđượctruynhậpthôngquacon trỏ. Tênmảnglàmộtcontrỏhằngtrỏtớikiểudữ liệucủacácthànhphầnđượclưutrữtrong mảng.int array[5] = { 23, 5, 12, 34, 17 };// sử dụng chỉ số để truy nhập tới các phần tử của mảngfor (int i=0; i< 5; i++) cout Vídụvề:Contrỏvàmảng #include usingnamespacestd; intmain() { intnumbers[5]; int ...
Nội dung trích xuất từ tài liệu:
Chương 3: Mảng và con trỏCHƯƠNG3:Mảngvàcontrỏ 1.Mảng Mảng(Array) Làmộttậpcácvịtrínhớliêntiếpnhau Cácphầntửtrongmảngcócùngtênvàcùngkiểu. Truynhậptớiphầntửtrongmảng Xácđịnhthôngquatênmảngvàchỉsố: arrayname[positionnumber] Phầntửđầutiênởvịtríthứ0 Khaibáomảng typearrayName[arraySize]; int c[ 10 ]; // mảng c gồm 10 số nguyên float d[ 3284 ]; // mảng d gồm 3284 số thực Cóthểkhaibáonhiềumảngcùngkiểu int b[ 100 ], x[ 27 ]; Khởitạomảng Sửdụngvònglặpfor:gángiátrịchotừngphầntử trongmảng. Sửdụngdanhsáchkhởitạo: int n[ 5 ] = { 1, 2, 3, 4, 5 }; Nếukhôngđủgiátrịkhởitạothìnhữngphầntửcònlạisẽ nhậngiátrịmặcđịnh. Nếugiátrịkhởitạonhiềuhơnkíchthướcmảngthìsẽbáolỗi. Gántấtcảcácphầntửvớicùngmộtgiátrị int n[ 5 ] = { 0 }; Nếukíchthướcmảngkhôngđượckhaibáothìdanhsách khởitạosẽxácđịnh: int n[] = { 1, 2, 3, 4, 5 }; //Mảngncó5phầntử Thamsốmảng Thamsốmảngđượcbiểudiễnbởikiểudữliệuvàkíchthướccủa mảng voiddisplay(float[n][m]); Hàmcóthểkhôngcầnbiếtkíchthướccủamảngnhưngphảibiết kíchthướccủamộtphầntửtrongmảng voidmyFunction(intn[]); voiddisplay(float[][m]); Khigọihàm,tachỉcầntruyềntênmảng int myArray[ 24 ]; myFunction( myArray); Mảngđượctruyềntheokiểutruyềnthamchiếu Hàmcóthểchỉnhsửadữliệucủacácphầntửtrongmảng Tênmảnglàđịachỉcủaphầntửđầutiên Vídụvềthamsốmảng#includeusingnamespacestd;voidprintarray(intarg[],intlength){ for(intn=0;nMảngnhiềuchiều Mảngnhiềuchiềuđượccoilàmảngcủa mảng. Khaibáo: doublesales[2][2]; sales[1][0]=2.5; Khởitạo: doublesales[2][2]={{1.2,3.0},{1.0,2.3}}; Xâukýtự Làmộtmảngcáckýtự Tấtcảcácxâukýtựđềukếtthúcvớiký tựnull(\0) Vídụ char string1[] = hello; Ký tự nullđượctựđộngbổsung. string1có6kýtự char string1[] = {h, e, l, l,o, \0’ }; Kiểudữliệustring stringlàmộtlớpchuẩntrongC++ Cáckýtựtrongstringđượcđánhtừ0 Khởitạomộtbiếnkiểustringnhưsau: strings1(“Man”); strings2=“Beast”; strings3; Tacóthểsửdụngcáctóantửtóanhọc,logic…trên đốitượngstring s3=s1; s3=“Neither”+s1+“nor”; s3+=s2; stringvàtoántử>> Hàmgetline(cin,stringstr):lưuthôngtin từluồngvàochuẩnđưavàostr. Vídụ: stringfull_name; cout2.Contrỏ Mỗibiếntrongchươngtrìnhchiếmmộtvùng nhớ,vídụbiếnkiểuintchiếm4bytenhớ. Vịtrícủavùngnhớđượcgọilàđịachỉcủa biến int i; Địa chỉ củai 0x1054 10101011 0x1055 00001111 0x1056 10001000 0x1057 11100011 char c; Địa chỉ củac 0x1058 00111011 short s; Địa chỉ của s 0x1059 10111100 0x1060 11001100Biếncontrỏ Biếncontrỏlàbiếnlưugiátrịcủađịachỉ vùngnhớ. Mỗikiểudữliệucómộtbiếncontrỏriêng: contrỏkiểuint,contrỏkiểuchar… C++sửdụng: Toántử&đểlấyđịachỉcủabiến Toántử*đểlấynộidungcủabiếnđượctrỏ. Vídụ:int i=17;int* ptr; // khai báo biến trỏ kiểu intptr= &i; // gán địa chỉ của biến i cho con trỏ ptrcout Biếncontrỏ…int i; 0x1054 17int* ptr; Đị ach ỉ ung N ộidptr=&i;cout Biếncontrỏ…int v; // khai báo biến v kiểu intint w; // khai báo biến w kiểu intint* p; // khai báo biến p kiểu con trỏ trỏ tới kiểu intp=&v; // gán địa chỉ của v cho con trỏ pv=3; // gán giá trị 3 cho v*p=7; // gán giá trị 7 cho vp=&w; // gán địa chỉ của w cho con trỏ p*p=12; // gán giá trị 12 cho w Contrỏhằng Khaibáohằng: constintresult=5; //resultlàhằng result=10; //sauđógánlạigiátrịthìC++sẽbáolỗi Khaibáocontrỏhằng: constchar*answer_ptr=FortyTwo; //answer_ptrlàcontrỏtrỏtớihằngkiểuchar Dữliệuđượctrỏbởicontrỏhằngthìkhông thểthayđổinhưngcontrỏthìcóthể. answer_ptr=FiftyOne;//đúng(answer_ptrlàbiếncontrỏ) *answer_ptr=X;//sai(*answer_ptrlàhằng) Contrỏhằng… Nếukhaibáo: char*constnameptr=Test; //name_ptrlàcontrỏhằng nameptr=New;//sai(name_ptrlàhằng) *nameptr=B;//đúng(*nameptrlàchar) Nếukhaibáonhưsauthìkhôngthể thayđổiđượccảcontrỏvànộidung củacontrỏ: constchar*consttitleptr=Title; Contrỏvàmảng Mảngcóthểđượctruynhậpthôngquacon trỏ. Tênmảnglàmộtcontrỏhằngtrỏtớikiểudữ liệucủacácthànhphầnđượclưutrữtrong mảng.int array[5] = { 23, 5, 12, 34, 17 };// sử dụng chỉ số để truy nhập tới các phần tử của mảngfor (int i=0; i< 5; i++) cout Vídụvề:Contrỏvàmảng #include usingnamespacestd; intmain() { intnumbers[5]; int ...
Tìm kiếm theo từ khóa liên quan:
lập trình hướng đối tượng ngôn ngữ lập trình C++ Khai báo mảng con trỏ Kiểu dữ liệu string Xâu ký tựGợi ý tài liệu liên quan:
-
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 347 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 254 0 0 -
46 trang 239 0 0
-
101 trang 193 1 0
-
Tài liệu học tập môn Tin cơ sở: Phần 1 - Phùng Thị Thu Hiền
100 trang 180 1 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 177 0 0 -
51 trang 132 0 0
-
14 trang 128 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 110 0 0 -
Lý thuyết ngôn ngữ lập trình C++ dành cho sinh viên: Phần 2
276 trang 109 0 0