Pointer Solution

 


4. Write a program to swap any two number using call by reference.


#include <stdio.h>

void swap(int *a, int *b);

int main() {

int x, y;

printf("Enter two integers: ");

scanf("%d %d", &x, &y);

printf("Before swapping: x = %d, y = %d\n", x, y);

swap(&x, &y);

printf("After swapping: x = %d, y = %d\n", x, y);

return 0;

}

void swap(int *a, int *b) {

int temp;

temp = *a;

*a = *b;

*b = temp;

}

Output

Enter two integers: 2   7

Before swapping: x = 2, y = 7

After swapping: x = 7, y = 2

 To run program please click me.

3. Write a program to swap two integer numbers using pointer.

 

#include <stdio.h>

void swap(int *a, int *b);

int main() {

    int x, y;

    printf("Enter two integers: ");

    scanf("%d %d", &x, &y);

     printf("Before swapping: x = %d, y = %d\n", x, y);

    swap(&x, &y);

    printf("After swapping: x = %d, y = %d\n", x, y);

  

    return 0;

}

 

void swap(int *a, int *b) {

    int temp;

    temp = *a;

    *a = *b;

    *b = temp;

}

Output

Enter two integers: 6 4

Before swapping: x = 6, y = 4

After swapping: x = 4, y = 6

 To run program please click me.

 2. Write a program to show pointer arithmetic operation between any two variables.

 

#include <stdio.h>  

int main ()  

{  

        // Integer variable  

        int a = 10, b=20;  

        // Pointer to an integer  

        int *ptr1, *ptr2;  

        // Pointer stores the address of variable a  

        ptr1 = &a;  

        ptr2 = &b;  

       printf ("Pointer ptr1 before Increment: ");  

        printf ("%p \n", ptr1);  

        // Incrementing pointer ptr1;  

        ptr1++;  

        printf ("Pointer ptr1 after Increment: ");  

        printf ("%p \n\n", ptr1);  

        printf ("Pointer ptr2 before Decrement: ");  

        printf ("%p \n", ptr2);  

        // Decrementing pointer ptr2;  

        ptr2--;  

       printf ("Pointer ptr2 after Decrement: ");  

        printf ("%p \n\n", ptr2);  

        return 0;  

}  


Output

Pointer ptr1 before Increment: 0x7ffd50326df0 

Pointer ptr1 after Increment: 0x7ffd50326df4 


Pointer ptr2 before Decrement: 0x7ffd50326df4 

Pointer ptr2 after Decrement: 0x7ffd50326df0 

  To run program please click me.

 1. How can you pass pointer to function. Show with example.

#include <stdio.h>

void increment(int *ptr);

int main() {

    int x = 10;

   

    printf("Before increment: x = %d\n", x);

   

    increment(&x);

   

    printf("After increment: x = %d\n", x);

   

    return 0;

}

 

void increment(int *ptr) {

    (*ptr)++;

}

 

Output

Before increment: x = 10

After increment: x = 11

 To run program please click me.

Comments