• Matching the data type of the actual and formal parameters
  • - The case of "value" variables

    * The data type of the actual parameter is coerced to the data type of the formal parameter

    - The case of "reference" variables

    * The value of the actual parameter is copied to a temporary variable of the correct type
    * The address of the temporary variable is passed to the function
    * The value of the actual parameter does not change !!

    - Examples

    #include <iostream.h> void change(int&, int); void main() { int i, j; i=1; j=2; change(i,j); cout << i << j; } void change(int& x, int y) { x=3; y=4; } #include <iostream.h> void scramble(int, int&, int); void main() { int i,j,k; i=1; j=2; k=3; scramble(i,j,k); cout << i << j << k; } void scramble(int x, int& y, int z) { x=10; y=20; z=30; }

    #include <iostream.h> void scramble(int, int&, int); void main() { int i,j,k; i=1; j=2; k=3; scramble(j,j,j); cout << i << j << k; } #include <iostream.h> void scramble(int, int&, int&); void main() { int i,j,k; i=1; j=2; k=3; scramble(k,j,i); cout << i << j << k; } void scramble(int x, int& y, int& z) { x=10; y=20; z=30; }

    Recommended exercises

    - Quick Check excersices: 2-7

    - Exam preparation excersices: 1-4, 7-14