C Tutorial/Function/Function Parameter
Содержание
Call by reference
<source lang="cpp">#include<stdio.h>
main ( ) {
int i; i = 0; printf (" The value of i before call %d \n", i); f1 (&i); printf (" The value of i after call %d \n", i);
}
f1(int *k)
{
*k = *k + 10;
}</source>
The value of i before call 0 The value of i after call 10
Cube a variable using call-by-reference with a pointer argument
<source lang="cpp">#include <stdio.h> void cubeByReference( int *nPtr ); int main() {
int number = 5; printf( "The original value of number is %d", number ); cubeByReference( &number ); printf( "\nThe new value of number is %d\n", number ); return 0;
} void cubeByReference( int *nPtr ) {
*nPtr = *nPtr * *nPtr * *nPtr; /* cube *nPtr */
}</source>
The original value of number is 5 The new value of number is 125
Cube a variable using call-by-value
<source lang="cpp">#include <stdio.h> int cubeByValue( int n ); int main() {
int number = 5; printf( "The original value of number is %d", number ); /* pass number by value to cubeByValue */ number = cubeByValue( number ); printf( "\nThe new value of number is %d\n", number ); return 0;
} int cubeByValue( int n ) {
return n * n * n;
}</source>
The original value of number is 5 The new value of number is 125
Parameter passing
Information can be passed into function.
<source lang="cpp">#include<stdio.h>
main ( )
{
int i; i = 0; printf (" The value of i before call %d \n", i); f1 (i); printf (" The value of i after call %d \n", i);
} f1 (int k) {
k = k + 10;
}</source>
The value of i before call 0 The value of i after call 0
Pass variables to function
<source lang="cpp">#include <stdio.h> float average(float x, float y) {
return (x + y)/2.0f;
} int main(void) {
float value1 = 1.0F; float value2 = 2.0F; float value3 = 0.0F;
value3 = average(value1, value2); printf("\nThe average is: %f\n", value3); return 0;
}</source>
The average is: 1.500000
Use pointer as function parameter
<source lang="cpp">#include <stdio.h> int change(int* pnumber); /* Function prototype */ int main(void) {
int number = 10; int *pnumber = &number; int result = 0; result = change(pnumber); printf("\nIn main, result = %d\tnumber = %d", result, number); return 0;
} int change(int *pnumber) {
*pnumber *= 2; printf("\nIn function change, *pnumber = %d\n", *pnumber ); return *pnumber;
}</source>
In function change, *pnumber = 20 In main, result = 20 number = 20