C++ Functions Parameters
Parameters and Arguments
Information can be passed to functions as a parameter. Parameters act as variables inside the function.
Parameters are specified after the function name, inside the parentheses. You can add as many parameters as you want, just separate them with a comma:
Syntax
void functionName(parameter1, parameter2, parameter3) {
// code to be executed
}
The following example has a
function that takes a string
called fname as parameter.
When the function is called, we pass along a first name,
which is used inside the function to print the full name:
Example
void myFunction(string fname) {
cout << fname << " Refsnes\n";
}
int main() {
myFunction("Liam");
myFunction("Jenny");
myFunction("Anja");
return 0;
}
// Liam Refsnes
// Jenny Refsnes
//
Anja Refsnes
Run example »
When a parameter is passed to the function, it is called an argument. So, from the example above:
fname
is a parameter, while Liam
, Jenny
and Anja
are arguments.
Default Parameter Value
You can also use a default parameter value, by using the equals sign (=
).
If we call the function without an argument, it uses the default value ("Norway"):
Example
void myFunction(string country = "Norway") {
cout
<< country << "\n";
}
int main() {
myFunction("Sweden");
myFunction("India");
myFunction();
myFunction("USA");
return 0;
}
// Sweden
//
India
// Norway
// USA
Run example »
A parameter with a default value, is often known as an "optional parameter". From the example above,
country
is an optional parameter and "Norway"
is the default value.
Multiple Parameters
You can add as many parameters as you want:
Example
void myFunction(string fname, int age) {
cout << fname << " Refsnes.
" << age << " years old. \n";
}
int main() {
myFunction("Liam", 3);
myFunction("Jenny", 14);
myFunction("Anja", 30);
return 0;
}
// Liam Refsnes. 3 years old.
// Jenny Refsnes. 14 years old.
// Anja Refsnes. 30 years old.
Run example »
Note that when you are working with multiple parameters, the function call must have the same number of arguments as there are parameters, and the arguments must be passed in the same order.
Return Values
The void
keyword, used in the examples above, indicates that the
function should not return a value. If you
want the function to return a value, you can use a data type (such as int
,
string
, etc.) instead of void
, and use the return
keyword inside the function:
Example
int myFunction(int x) {
return 5
+ x;
}
int main() {
cout << myFunction(3);
return 0;
}
// Outputs
8 (5 + 3)
Run example »
This example returns the sum of a function with two parameters:
Example
int myFunction(int x, int y) {
return x + y;
}
int main()
{
cout << myFunction(5, 3);
return 0;
}
// Outputs 8 (5 + 3)
Run example »
You can also store the result in a variable:
Example
int myFunction(int x, int y) {
return x + y;
}
int main() {
int z = myFunction(5, 3);
cout << z;
return 0;
}
// Outputs 8 (5 + 3)
Run example »
Pass By Reference
In the examples above, we used normal variables when we passed parameters to a function. You can also pass a reference to the function. This can be useful when you need to change the value of the arguments:
Example
void swapNums(int &x, int &y) {
int z = x;
x = y;
y = z;
}
int main() {
int firstNum = 10;
int secondNum = 20;
cout <<
"Before swap: " << "\n";
cout << firstNum << secondNum << "\n";
// Call the function, which will change the values of firstNum
and secondNum
swapNums(firstNum, secondNum);
cout << "After swap:
" << "\n";
cout << firstNum << secondNum << "\n";
return 0;
}
Run example »