Professional Documents
Culture Documents
Function Grammar
Function Grammar
Function Grammar
Calling:
1. function_name();
2. function_name (data1, data2, …, datan);
3. <d t> variable = function_name(); // or “cout << function_name();”
4. <d t> variable = function_name(data1, data2, …, datan);
// or “cout << function_name(data1, data2, …, datan);”
Declaration:
1. void function_name (void); // same as “void function_name();”
2. void function_name (<d t> para1, <d t> para2, …, <d t> paran);
3. <d t> function_name();
4. <d t> function_name(<d t> para1, <d t> para2, …, <d t> paran);
Definitions:
1. void function_name () {…}
2. void function_name (<d t> para1, <d t> para2, …, <d t> paran) {…}
3. <d t> function_name() { …; return d_t_variable;}
4. <d t> function_name(<d t> para1, <d t> para2, …, <d t> paran)
{ …; return d_t_variable;}
Three types of function callings
Call by value
Call by pointer
Call by reference (address)
Call by value cannot transfer data between parameters.
The other two callings are able to transfer data between parameters.
Call by Pointer
Declaration:
<d t> function_name (<d t>* , <d t>* ); // int swap(int *, int*);
Definition:
<d t> function_name(<d t>* a, <d t>* b)
{ <d t> var = *a + *b; return var; }
Calling in main():
<d t> function_name(&a, &b);
Call by Reference
Declaration:
void function_name(<d t>&, <d t>&); // void swap(int&, int&);
Definition:
void function_name(<d t>&a, <d t>&b)
{ a = b*b; b = a*2; }
Calling in main():
function_name(a, b);