Follow Our FB Page << >> for Daily Laughter. We Post Funny, Viral, Comedy Videos, Memes, Vines...

main( )


static int a[ ] = {0,1,2,3,4};

int *p[ ] = {a,a+1,a+2,a+3,a+4};

int **ptr = p;


printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);


printf(“\n %d %d %d”, ptr-p, *ptr-a, **ptr);


printf(“\n %d %d %d”, ptr-p, *ptr-a, **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 :






Let us consider the array and the two pointers with some address


100 102 104 106 108


1000 1002 1004 1006 1008



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 ?    17 Yes 2 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 ?    4 Yes 5 No

Post New Answer

More C Code Interview Questions

Write a complete program that consists of a function that can receive two numbers from a user (M and N) as a parameter. Then print all the numbers between the two numbers including the number itself. If the value of M is smaller than N, print the numbers in ascending flow. If the value of M is bigger than N, print the numbers in descending flow. may i know how the coding look like?

2 Answers  

main() { int i; clrscr(); printf("%d", &i)+1; scanf("%d", i)-1; } a. Runtime error. b. Runtime error. Access violation. c. Compile error. Illegal syntax d. None of the above

1 Answers   HCL,

How can you relate the function with the structure? Explain with an appropriate example.

0 Answers  

Given an array of characters which form a sentence of words, give an efficient algorithm to reverse the order of the words (not characters) in it.

9 Answers   Microsoft,

Write a program using one dimensional array to assign values and then display it on the screen. Use the formula a[i]=i*10 to assign value to an element.

1 Answers   Samar State University,

main() { int i=-1,j=-1,k=0,l=2,m; m=i++&&j++&&k++||l++; printf("%d %d %d %d %d",i,j,k,l,m); }

1 Answers  

write a c program to Create a registration form application by taking the details like username, address, phone number, email along with password and confirm password (should be same as password).Ensure that the password is of 8 characters with only numbers and alphabets. Take such details for 5 users and display the details. In place of password display “****”. (Use Structures).

0 Answers   CDAC, College School Exams Tests,

void main() { int *i = 0x400; // i points to the address 400 *i = 0; // set the value of memory location pointed by i; }

2 Answers  

Program to Delete an element from a doubly linked list.

4 Answers   College School Exams Tests, Infosys,

Write a single line c expression to delete a,b,c from aabbcc

2 Answers   Microsoft,

#include<stdio.h> main() { char s[]={'a','b','c','\n','c','\0'}; char *p,*str,*str1; p=&s[3]; str=p; str1=s; printf("%d",++*p + ++*str1-32); }

2 Answers   CNSI,

Write a procedure to implement highlight as a blinking operation

2 Answers