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
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
#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
#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
Comments
Post a Comment