C Programming - Functions - Discussion

Discussion Forum : Functions - Find Output of Program (Q.No. 2)
2.
What will be the output of the program?
#include<stdio.h>
void fun(int*, int*);
int main()
{
    int i=5, j=2;
    fun(&i, &j);
    printf("%d, %d", i, j);
    return 0;
}
void fun(int *i, int *j)
{
    *i = *i**i;
    *j = *j**j;
}
5, 2
10, 4
2, 5
25, 4
Answer: Option
Explanation:

Step 1: int i=5, j=2; Here variable i and j are declared as an integer type and initialized to 5 and 2 respectively.

Step 2: fun(&i, &j); Here the function fun() is called with two parameters &i and &j (The & denotes call by reference. So the address of the variable i and j are passed. )

Step 3: void fun(int *i, int *j) This function is called by reference, so we have to use * before the parameters.

Step 4: *i = *i**i; Here *i denotes the value of the variable i. We are multiplying 5*5 and storing the result 25 in same variable i.

Step 5: *j = *j**j; Here *j denotes the value of the variable j. We are multiplying 2*2 and storing the result 4 in same variable j.

Step 6: Then the function void fun(int *i, int *j) return back the control back to main() function.

Step 7: printf("%d, %d", i, j); It prints the value of variable i and j.

Hence the output is 25, 4.

Discussion:
24 comments Page 3 of 3.

Rohit said:   1 decade ago
Can someone please help me with this

#include <stdio.h>
void temp(int i)
{
if(i==10) return;
i++ ;
temp(i);
printf("%d" , i);

}
int main()
{
temp(1);
}

This program(when executed in GCC compiler) gives the output
1098765432

How is it printing the elements in reverse order?

Lokesh said:   1 decade ago
It's pointer of i(multiplied)by pointer of i
here the pointer value is the value that is present in the address of the variable .
so
*i=5,hence *i**i=5*5=25
*j=2,hence *j**j=2*2=4

Moni said:   1 decade ago
Can anyone give the explanation?

Vishal said:   1 decade ago
Pointer multiplication is not allowed. Then how is it possible?


Post your comments here:

Your comments will be displayed after verification.