Function problem

The parameters in the prototype have big difference with the function inside the main. Why they still work?
Also, what are the parameters value in test(&second, array, SIZE)?
Is the value likes: test(address, array[4], 4)?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
  # include <iostream>
using namespace std;

void test(int, int=2, int=2);
void test(int, int *, int &);
void test(int* , int[], int);
const int SIZE = 4;

int main()
{
	int first =2, second =3, third =4;
	int array[SIZE]={3,6};
	test(third, second);
	cout << first << ", " << second << ", " << third << "," << endl;
	test(&second, array, SIZE);
	for(int i = 0; i < SIZE; i++)
	{
		cout << array[i] << ", " ;
	}
	cout << endl;
	test(array[1], &array[2], array[3]);
	for(int i = 0; i < SIZE; i++)
	{
		cout << array[i] << ", " ;
	}
	cout << endl;

	system("pause");
	return 0;
}

void test(int first, int second, int third)
{
	first += 10;
	second+= 20;
	third+= 30;
	cout<< first << ", " << second << ", " << third << ", " << endl;
}

void test(int* p, int num[], int SIZE)
{
	*p = SIZE;
	for(int i=0; i<SIZE; i++)
	{
		*(num + i) += *p;
	}
}

void test(int first, int *second, int & third)
{
	first += 2;
	*second += 5;
	third += 3;
}
The parameters in the prototype have big difference with the function inside the main.

What? Each of your function calls in main() seem to match one and only one of your functions.

Also, what are the parameters value in test(&second, array, SIZE)?

The parameters in that function call are a pointer to an int, an array of int, and a single int, which matches void test(int* p, int num[], int SIZE)

1
2
3
	test(third, second);
// Matches:
void test(int, int=2, int=2);


1
2
3
	test(&second, array, SIZE);
// Matches:
void test(int* p, int num[], int SIZE);

1
2
3
	test(array[1], &array[2], array[3]);
// Matches:
void test(int first, int *second, int & third);

Topic archived. No new replies allowed.