Увод в програмирането
alpha
|
общ вид:
име_на_функцията ( списък_от_фактически_параметри );
В общия случай фактическия параметър е израз.
Обръщението към функция може да се използва като операнд в израз. В този случай, то не завършва с ";". Ако обръщението към функцията не е в израз, тогава трябва да завършва с ";". То представлява оператор в C/C++, но тогава върнатия резултат ще се загуби и няма да може да се използва в извикващата функция.
Ако функцията не връща резултат, тя не трябва да се използва като операнд.
Между формални и фактически параметри задължително трябва да има съответствие по тип и брой на параметрите. Като при необходимост типът на фактическите параметри се преобразува към типа на съответния формален параметър.
Пример:
#include<stdio.h> #include<iostream.h> using namespace std; int toupper( char c ) { return ( ( c >= 'a' && c<='z' )? c-'a'+'A':c ); } int main() { char ch; cout<<"Въведете символ: "; ch = getchar(); getchar(); // Clear the buffer; putchar( toupper ( ch ) ); // putchar () -> извежда един символ }
Какво сле случва при извикване функцията:
Задача:
Да се състави програма за намиране на max в редица от числа ( чрез функция ).
Решение:
#include<iostream> using namespace std; float maxi ( float c[], int n ) { int i; float m; m = c[0]; for( int i = 1; i<n; i++ ) if( m < c[i]) m=c[i]; return m; } int main() { int br, i; float mas[100]; cout<<"Въведете броя на числата: "; cin>>br; for( i = 0; i<br; i++) { cout<<"Въведете mas["<<i<<"]= "; cin>>mas[i]; } cout<<"Максималното число = "<<maxi(mas, br)<<endl; return 0; }
Параметрите се пресмятат от дясно на ляво и се записват в програмния стек.
Стойностите на променливите се записват от горе на долу.
Записва се стойността на името на масива ( т.е. адреса към първия му елемент).
Управлението се предава на извиканата функция.
Следва да се разпредели място за локални параметри. Паметта се разпределя от дясно на ляво. Когато се използва масив, се извършва заместване по име. За това не се декларира броя на елементите при едномерни масиви.
Свързваме по стойност или предаваме по стойност.