Dùng m ng làm tham s ố

Một phần của tài liệu Bài 1 : Cấu Trúc Của Một Chương Trình C++ ppsx (Trang 35 - 37)

Vào m t lúc nào đó có th chúng ta c n ph i truy n m t m ng t i m t hàm nh làộ ể ầ ả ề ộ ả ớ ộ ư

m t tham s . Trong C++, vi c truy n theo tham s giá tr m t kh i nh là không h pộ ố ệ ề ố ị ộ ố ớ ợ

l , ngay c khi nó đệ ả ượ ổc t ch c thành m t m ng. Tuy nhiên chúng ta l i đứ ộ ả ạ ược phép truy n đ a ch c a nó, vi c này cũng t o ra k t qu th c t gi ng thao tác trên nh ngề ị ỉ ủ ệ ạ ế ả ự ế ố ở ư

l i nhanh h n nhi u và hi u qu h n. ạ ơ ề ệ ả ơ

Đ có th nh n m ng là tham s thì đi u duy nh t chúng ta ph i làm khi khai báo hàmể ể ậ ả ố ề ấ ả

là ch đ nh trong ph n tham s ki u d li u c b n c a m ng, tên m ng và c p ngo cỉ ị ầ ố ể ữ ệ ơ ả ủ ả ả ặ ặ

vuông tr ng. Ví d , hàm sau: ố ụ

void procedure (int arg[])

nh n vào m t tham s có ki u "m ng c a ậ ộ ố ể ả ủ char" và có tên arg. Đ truy n tham s choể ề ố

hàm này m t m ng độ ả ược khai báo: int myarray [40]; ch c n g i hàm nh sau: ỉ ầ ọ ư procedure (myarray); Dưới đây là m t ví d c thộ ụ ụ ể // arrays as parameters #include <iostream.h>

void printarray (int arg[], int length) {

for (int n=0; n<length; n++) cout << arg[n] << " "; cout << "\n"; } int main () { int firstarray[] = {5, 10, 15}; int secondarray[] = {2, 4, 6, 8, 10}; printarray (firstarray,3); printarray (secondarray,5); return 0; } 5 10 15 2 4 6 8 10

Nh b n có th th y, tham s đ u tiên (ư ạ ể ấ ố ầ int arg[]) ch p nh n m i m ng có ki u cấ ậ ọ ả ể ơ

b n là ả int, b t k đ dài c a nó là bao nhiêu, vì v y c n thi t ph i có tham s th haiấ ể ộ ủ ậ ầ ế ả ố ứ

đ báo cho hàm này bi t đ dài c a m ng mà chúng ta truy n cho nó. ể ế ộ ủ ả ề

Trong ph n khai báo hàm chúng ta cũng có th dùng tham s là các m ng nhi u chi u.ầ ể ố ả ề ề

C u trúc c a m ng 3 chi u nh sau: ấ ủ ả ề ư

base_type[][depth][depth]

ví d , m t hàm v i tham s là m ng nhi u chi u có th nh sau: ụ ộ ớ ố ả ề ề ể ư

void procedure (int myarray[][3][4])

chú ý r ng c p ngo c vuông đ u tiên đ tr ng nh ng các c p ngo c sau thì không.ằ ặ ặ ầ ể ố ư ặ ặ

B n luôn luôn ph i làm v y vì trình biên d ch C++ ph i có kh năng xác đ nh đ l nạ ả ậ ị ả ả ị ộ ớ

c a các chi u thêm vào c a m ng. ủ ề ủ ả

style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: medium none; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 3pt solid"> M ng, c m t chi u và nhi u chi u, khi truy n cho hàm nh là m t tham s thả ả ộ ề ề ề ề ư ộ ố ường là nguyên nhân gây l i cho nh ng l p trình viên thi u kinh nghi m. Các b n nên đ c bàiỗ ữ ậ ế ệ ạ ọ

3.3. Con trỏ đ có th hi u rõ h n m ng ho t đ ng nh th nào.ể ể ể ơ ả ạ ộ ư ếBài 8 : Xâu Ký Tự Bài 8 : Xâu Ký Tự

Trong t t c các chấ ả ương trình chúng ta đã th y cho đ n gi , chúng ta ch s d ng cácấ ế ờ ỉ ử ụ

bi n ki u s , ch dùng đ bi u di n các s . Nh ng bên c nh các bi n ki u s còn cóế ể ố ỉ ể ể ễ ố ư ạ ế ể ố

các xâu kí t , chúng cho phép chúng ta bi u di n các chu i kí t nh là các t , câu,ự ể ễ ỗ ự ư ừ

đo n văn b n... Cho đ n gi chúng ta m i ch dùng chúng dạ ả ế ờ ớ ỉ ướ ại d ng h ng ch ch aằ ứ ứ

quan tâm đ n các bi n có th ch a chúng.ế ế ể ứ

Trong C++ không có ki u d li u ể ữ ệ c b nơ ả đ l u các xâu kí t . Đ có th th a mãnể ư ự ể ể ỏ

nhu c u này, ngầ ười ta s d ng m ng có ki u ử ụ ả ể char. Hãy nh r ng ki u d li u nàyớ ằ ể ữ ệ

(char) ch có th l u tr m t kí t đ n, b i v y nó đỉ ể ư ữ ộ ự ơ ở ậ ược dùng đ t o ra xâu c a các kíể ạ ủ

t đ n. ự ơ

Ví d , m ng sau (hay là xâu kí t ): ụ ả ự

char jenny [20];

có th l u m t xâu kí t v i đ dài c c đ i là 20 kí t . B n có th tể ư ộ ự ớ ộ ự ạ ự ạ ể ưởng tượng nó nh sau: ư

Kích thướ ực c c đ i này không c n ph i luôn luôn dùng đ n. Ví d , ạ ầ ả ế ụ jenny có th l uể ư

xâu "Hello" hay "Merry christmas". Vì các m ng kí t có th l u các xâu kí tả ự ể ư ự

ng n h n đ dài c a nó, trong C++ đã có m t quy ắ ơ ộ ủ ộ ước đ k t thúc m t n i dung c aể ế ộ ộ ủ

m t xâu kí t b ng m t kí t null, có th độ ự ằ ộ ự ể ược vi t là ế '\0'.

Chúng ta có th bi u di n ể ể ễ jenny (m t m ng có 20 ph n t ki u ộ ả ầ ử ể char) khi l u tr xâuư ữ

kí t ự"Hello" và "Merry Christmas" theo cách sau:

Chú ý r ng sau n i dung c a xâu, m t kí t null (ằ ộ ủ ộ ự '\0') được dùng đ báo hi u k tể ệ ế

thúc xâu. Nh ng ô màu xám bi u di n nh ng giá tr không xác đ nh. ữ ể ễ ữ ị ị

Một phần của tài liệu Bài 1 : Cấu Trúc Của Một Chương Trình C++ ppsx (Trang 35 - 37)

Tải bản đầy đủ (PDF)

(65 trang)