Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


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



main( ) { static int a[ ] = {0,1,2,3,4}; int *p[ ] = {a,a+1,a+2,a+3..

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

main( ) { static int a[ ] = {0,1,2,3,4}; int *p[ ] = {a,a+1,a+2,a+3..

Answer / rashmi

the logic given by u is wierd.......!!!!!!!!!!!!!!!!!!!

Is This Answer Correct ?    10 Yes 8 No

Post New Answer

More C Code Interview Questions

how to delete an element in an array

2 Answers   IBM,


How to access command-line arguments?

4 Answers  


How do you verify if the two sentences/phrases input is an anagram using predefined functions in string.h and by using arrays?

0 Answers  


Predict the Output: int main() { int *p=(int *)2000; scanf("%d",2000); printf("%d",*p); return 0; } if input is 20 ,what will be print

2 Answers  


#include"math.h" void main() { printf("Hi everybody"); } if <stdio.h> will be included then this program will must compile, but as we know that when we include a header file in "" then any system defined function find its defination from all the directrives. So is this code of segment will compile? If no then why?

2 Answers  


main() { int i =10, j = 20; clrscr(); printf("%d, %d, ", j-- , --i); printf("%d, %d ", j++ , ++i); } a. 20, 10, 20, 10 b. 20, 9, 20, 10 c. 20, 9, 19, 10 d. 19, 9, 20, 10

4 Answers   HCL,


String copy logic in one line.

11 Answers   Microsoft, NetApp,


Write a C program to print ‘Campus Force training’ without using even a single semicolon in the program.

3 Answers   Wipro,


Given only putchar (no sprintf, itoa, etc.) write a routine putlong that prints out an unsigned long in decimal.

6 Answers   Fusion Systems GmbH,


4. Main() { Int i=3,j=2,c=0,m; m=i&&j||c&I; printf(“%d%d%d%d”,I,j,c,m); }

2 Answers   Broadridge,


main(int argc, char **argv) { printf("enter the character"); getchar(); sum(argv[1],argv[2]); } sum(num1,num2) int num1,num2; { return num1+num2; }

1 Answers  


find A^B using Recursive function

2 Answers  


Categories