In this new file write a function called swapInts that swaps (interchanges) the values of two integers that it is given access to via pointer parameters. Write a main function that asks the user for two integer values, stores them in variables num1 and num2, calls the swap function to swap the values of num1 & num2, and then prints the resultant (swapped) values of the same variables num1 and num2.

Respuesta :

Answer:

Here is the C++ program to swap the values of two integers. However, let me know if you require the program in some other programming language.

Program:

#include <iostream>  

/*include is preprocessor directive that directs preprocessor to iostream header file that contains input output functions */

using namespace std;  

// namespace is used by computer to identify cout endl cin

void swapInts(int* no1, int* no2) {

/*function swapInts definition which swaps two integer values having pointer type parameters */

  int temp;   //temporary variable to hold the integer values

  temp = *no1;  // holds the value at address of no1

  *no1 = *no2;  //places no2 to no1

  *no2 = temp;    }  //places no2 to temp variable which is holding no1

int main()  // enters body of the main function

{   int num1;  //declares variable num1 of integer type

  int num2;  //declares variable num2 of integer type

  cout << "Enter two integer values:" << endl;  

// prompts the user to input two integer values

  cin>>num1;   // reads input value of num1

  cin>>num2;  // reads input value of num2

  cout<<"The original value of num1 before swapping is = "<<num1<<endl;

/*displays the original value of integer in num1 variable before calling swapInts function*/

  cout<<"The original value of num2 before swapping is = "<<num2<<endl;

/*displays the original value of integer in num2 variable before calling swapInts function*/

  swapInts(&num1, &num2);  

/*function call to swapInts()) function and here &num1 is address of num1  variable and &num2 is address of num2 variable */

  cout << "The swapped value of num1 is = " << num1 << endl;

//displays the value of num1 after swapping

  cout << "The swapped value of num2 is = " << num2 << endl;   }      

  //displays the value of num2 integer after swapping

Output:

Enter two integer values:

3

5

The original value of num1 before swapping is = 3

The original value of num2 before swapping is = 5

The swapped value of num1 is = 5

The swapped value of num2 is = 3

Explanation:

This  swapInts(&num1, &num2); statement calls the function swapInts() by passing the addresses of variables num1 and num2 in function call instead of the values of variables.

In simple words the function is called by passing values by pointer.  For this purpose the symbol & is used which is called reference operator which is used to assign address of the variables.

So this method is called passing by pointer, which means that address of an actual argument in call to the function is copied to the formal parameters of the called function. The passed argument also gets changed with the change made to the formal parameter.

In void swapInts(int* no1, int* no2) statement no1 holds the address of num1 and no2 holds the address of num2. Also *no1 and *no2 give value stored at addresses num1 and num2.

So to obtain the value which is stored in these addresses, dereference operator "*" is being used with pointer variables *no1 and *no2.

The address of num1 and num2 is passed to this function instead of the values of num1 and num2

Now if any changes are made to *no1 and *no2 this will affect the value of num1 and num2 and their value will be changed too.

ACCESS MORE
EDU ACCESS