C Programming - Pointers - Discussion
Discussion Forum : Pointers - Find Output of Program (Q.No. 5)
5.
What will be the output of the program If the integer is 4bytes long?
#include<stdio.h>
int main()
{
int ***r, **q, *p, i=8;
p = &i;
q = &p;
r = &q;
printf("%d, %d, %d\n", *p, **q, ***r);
return 0;
}
Discussion:
35 comments Page 3 of 4.
Tarun said:
1 decade ago
@Jyothi. Explain nicely thanks for understand me.
Zohra said:
1 decade ago
Well explained. Sunil.
Madhu said:
1 decade ago
If it declaired that int i,*p then
p= &i (it means p stores the address of i)
*p=value at i
same way
q= &p
**q=value at &i(it means pointer to a integer pointer)
***r= value at &i(it means pointer to a pointer to a poiter )
and it has no limit to extend this pointer to pointer so we can use number of' *'.but all are print only the value so it prints 8,8,8.
p= &i (it means p stores the address of i)
*p=value at i
same way
q= &p
**q=value at &i(it means pointer to a integer pointer)
***r= value at &i(it means pointer to a pointer to a poiter )
and it has no limit to extend this pointer to pointer so we can use number of' *'.but all are print only the value so it prints 8,8,8.
Uttam said:
1 decade ago
Let the addresses of variables i,p,q,r are 0x100,0x200,0x300,0x400 respectively.
Here p,q,r are pointers.
p holds address of i.ie 0x100.
q holds address of p.ie 0x200.
r holds address of q.ie 0x300.
so we can say r is the pointer which indirectly refers to the address of variable i.
so value that pointer r holds is indirectly equal to the value of i.
Here p,q,r are pointers.
p holds address of i.ie 0x100.
q holds address of p.ie 0x200.
r holds address of q.ie 0x300.
so we can say r is the pointer which indirectly refers to the address of variable i.
so value that pointer r holds is indirectly equal to the value of i.
Perumalsamy said:
1 decade ago
First assume i=8
and then
p =&i; // p holds address of i
q=&p; // q holds address of p
r=&q; // and r holds address of q
*p means value of i;
**q and ***r and is called chain pointer that means
p<-q<-r
So all value is 8.
and then
p =&i; // p holds address of i
q=&p; // q holds address of p
r=&q; // and r holds address of q
*p means value of i;
**q and ***r and is called chain pointer that means
p<-q<-r
So all value is 8.
Swadhinur said:
1 decade ago
Keerthi the way you describe is the right concept of this problem.
Keerthi kumar said:
1 decade ago
Initially i=8 (given integer is 4 bytes long)
p=&i implies address of i (4000)
q=&p implies address of p (4004)
r=&q implies address of q (4008)
output
*p=8,
**q since q=4004
*q=4000
**q=8
***r since r=4008
*r=4004
**r=4000
***r=8 hence output is 8,8,8
p=&i implies address of i (4000)
q=&p implies address of p (4004)
r=&q implies address of q (4008)
output
*p=8,
**q since q=4004
*q=4000
**q=8
***r since r=4008
*r=4004
**r=4000
***r=8 hence output is 8,8,8
Vivek said:
1 decade ago
*p=value in (&i)=8
q=&p
then **q=value in (p=(value in(&i))=8
r=&q
then ***r=value in (q=(value in(p=(value in &i)))=8
q=&p
then **q=value in (p=(value in(&i))=8
r=&q
then ***r=value in (q=(value in(p=(value in &i)))=8
Taniya said:
1 decade ago
Thanx all.
Arnab Bhattacharya said:
1 decade ago
Thank you Sunil Pradhan!
The way you have explained is very easy to understand the concept clearly. Hope more posts from you.
The way you have explained is very easy to understand the concept clearly. Hope more posts from you.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers