main( )
{
static int a[ ] = {0,1,2,3,4};
int *p[ ] = {a,a+1,a+2,a+3,a+4};
int **ptr = p;
ptr++;
printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);
*ptr++;
printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);
*++ptr;
printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);
++*ptr;
printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);
}
Answers were Sorted based on User's Feedback
Answer / susie
Answer :
111
222
333
344
Explanation:
Let us consider the array and the two pointers with some address
a
0
1
2
3
4
100 102 104 106 108
p
100
102
104
106
108
1000 1002 1004 1006 1008
ptr
1000
2000
After execution of the instruction ptr++ value in ptr
becomes 1002, if scaling factor for integer is 2 bytes. Now
ptr – p is value in ptr – starting location of array p,
(1002 – 1000) / (scaling factor) = 1, *ptr – a = value at
address pointed by ptr – starting value of array a, 1002 has
a value 102 so the value is (102 – 100)/(scaling factor) =
1, **ptr is the value stored in the location pointed by
the pointer of ptr = value pointed by value pointed by 1002
= value pointed by 102 = 1. Hence the output of the firs
printf is 1, 1, 1.
After execution of *ptr++ increments value of the value in
ptr by scaling factor, so it becomes1004. Hence, the outputs
for the second printf are ptr – p = 2, *ptr – a = 2, **ptr = 2.
After execution of *++ptr increments value of the value in
ptr by scaling factor, so it becomes1004. Hence, the outputs
for the third printf are ptr – p = 3, *ptr – a = 3, **ptr = 3.
After execution of ++*ptr value in ptr remains the same, the
value pointed by the value is incremented by the scaling
factor. So the value in array p at location 1006 changes
from 106 10 108,. Hence, the outputs for the fourth printf
are ptr – p = 1006 – 1000 = 3, *ptr – a = 108 – 100 = 4,
**ptr = 4.
| Is This Answer Correct ? | 26 Yes | 3 No |
Answer / rashmi
the logic given by u is wierd.......!!!!!!!!!!!!!!!!!!!
| Is This Answer Correct ? | 10 Yes | 8 No |
Write a C function to search a number in the given list of numbers. donot use printf and scanf
#define f(g,g2) g##g2 main() { int var12=100; printf("%d",f(var,12)); }
main() { char *a = "Hello "; char *b = "World"; clrscr(); printf("%s", strcat(a,b)); } a. Hello b. Hello World c. HelloWorld d. None of the above
#include<stdio.h> main() { struct xx { int x; struct yy { char s; struct xx *p; }; struct yy *q; }; }
main() { int i=400,j=300; printf("%d..%d"); }
#ifdef something int some=0; #endif main() { int thing = 0; printf("%d %d\n", some ,thing); }
Implement a t9 mobile dictionary. (Give code with explanation )
1 Answers Amazon, Peak6, Yahoo,
enum colors {BLACK,BLUE,GREEN} main() { printf("%d..%d..%d",BLACK,BLUE,GREEN); return(1); }
Write a c program to search an element in an array using recursion
main() { int i; float *pf; pf = (float *)&i; *pf = 100.00; printf("\n %d", i); } a. Runtime error. b. 100 c. Some Integer not 100 d. None of the above
write the function. if all the character in string B appear in string A, return true, otherwise return false.
Given n nodes. Find the number of different structural binary trees that can be formed using the nodes.
16 Answers Aricent, Cisco, Directi, Qualcomm,