Студопедия

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

КАТЕГОРИИ:

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






Truyền tham số theo tham số giá trị hay tham số biến.






Cho đ ế n nay, trong tấ t cả cá c hà m chú ng ta đ ã biế t, tấ t cả cá c tham số truyề n cho hà m đ ề u đ ư ợ c truyề n theo giá trị. Đ iề u nà y có nghĩ a là khi chú ng ta gọ i hà m vớ i cá c tham số, nhữ ng gì chú ng ta truyề n cho hà m là cá c giá trị chứ khô ng phả i bả n thâ n cá c biế n. Ví dụ, giả sử chú ng ta gọ i hà m addition như sau:

int x=5, y=3, z;
z = addition (x, y);

Trong trư ờ ng hợ p nà y khi chú ng ta gọ i hà m addition thì cá c giá trị 5 and 3 đ ư ợ c truyề n cho hà m, khô ng phả i là bả n thâ n cá c biế n.

Đ ế n đ â y cá c bạ n có thể hỏ i tô i: Như vậ y thì sao, có ả nh hư ở ng gì đ â u? Đ iề u đ á ng nó i ở đ â y là khi cá c bạ n thay đ ổ i giá trị củ a cá c biế n a hay b bê n trong hà m thì cá c biế n x y vẫ n khô ng thay đ ổ i vì chú ng đ â u có đ ư ợ c truyề n cho hà m chỉ có giá trị củ a chú ng đ ư ợ c truyề n mà thô i.

Hã y xé t trư ờ ng hợ p bạ n cầ n thao tá c vớ i mộ t biế n ngoà i ở bê n trong mộ t hà m. Vì vậ y bạ n sẽ phả i truyề n tham số dư ớ i dạ ng tham số biế n như ở trong hà m duplicate trong ví dụ dư ớ i đ â y:

// passing parameters by reference #include < iostream.h> void duplicate (int& a, int& b, int& c){ a*=2; b*=2; c*=2; } int main (){ int x=1, y=3, z=7; duplicate (x, y, z); cout < < " x=" < < x < < ", y=" < < y < < ", z=" < < z; return 0; } x=2, y=6, z=14

Đ iề u đ ầ u tiê n là m bạ n chú ý là trong khai bá o củ a duplicate theo sau tê n kiể u củ a mỗ i tham số đ ề u là dấ u và ( & ), đ ể bá o hiệ u rằ ng cá c tham số nà y đ ư ợ c truyề n theo tham số biế n chứ khô ng phả i tham số giá trị.

Khi truyề n tham số dư ớ i dạ ng tham số biế n chú ng ta đ ang truyề n bả n thâ n biế n đ ó và bấ t kì sự thay đ ổ i nà o mà chú ng ta thự c hiệ n vớ i tham số đ ó bê n trong hà m sẽ ả nh hư ở ng trự c tiế p đ ế n biế n đ ó.

Trong ví dụ trê n, chú ng ta đ ã liê n kế t a , b c vớ i cá c tham số khi gọ i hà m ( x , y z ) và mọ i sự thay đ ổ i vớ i a bê n trong hà m sẽ ả nh hư ở ng đ ế n giá trị củ a x và hoà n toà n tư ơ ng tự vớ i b y , c z .

Kiể u khai bá o tham số theo dạ ng tham số biế n sử dụ ng dấ u và (& ) chỉ có trong C++. Trong ngô n ngữ C chú ng ta phả i sử dụ ng con trỏ đ ể là m việ c tư ơ ng tự như thế.

Truyề n tham số dư ớ i dạ ng tham số biế n cho phé p mộ t hà m trả về nhiề u hơ n mộ t giá trị. Ví dụ, đ â y là mộ t hà m trả về số liề n trư ớ c và liề n sau củ a tham số đ ầ u tiê n.

// more than one returning value #include < iostream.h> void prevnext (int x, int& prev, int& next){ prev = x-1; next = x+1; } int main (){ int x=100, y, z; prevnext (x, y, z); cout < < " Previous=" < < y < < ", Next=" < < z; return 0; } Previous=99, Next=101

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

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