Objective
In this challenge, you will learn to implement the basic functionalities of pointers in C. A pointer in C is a way to share a memory address among different contexts (primarily functions). They are primarily used whenever a function needs to modify the content of a variable, of which it doesn't have ownership.
In order to access the memory address of a variable, , we need to prepend it with sign. E.g., &val returns the memory address of .
This memory address is assigned to a pointer and can be shared among various functions. E.g. will assign the memory address of to pointer . To access the content of the memory to which the pointer points, prepend it with a *. For example, *p will return the value reflected by and any modification to it will be reflected at the source ().
void increment(int *v) {
(*v)++;
}
int main() {
int a;
scanf("%d", &a);
increment(&a);
printf("%d", a);
return 0;
}
Task
You have to complete the function void update(int *a,int *b), which reads two integers as argument, and sets with the sum of them, and with the absolute difference of them.
Solution:
#include <stdio.h> #include <stdlib.h> void update(int *a,int *b) { int sum=0,diff=0; sum =(*a)+(*b); diff=abs((*a)-(*b)); *a =sum; *b = diff; } int main() { int a, b; int *pa = &a, *pb = &b; scanf("%d %d", &a, &b); update(pa, pb); printf("%d\n%d", a, b); return 0; } |
Note:
This Code is Verified by all Test Cases.If any error occurs then Comment correct code Below in comment box
Disclaimer:
The above all problem statement is given by hackerrank.com, but the solution is generated by the CodexRitik authority if any of the query regarding this post or website fill the following contact form Thank You.
No comments: