Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Dùng mảng làm tham số.






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ự

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" " 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.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал