main()
{
int ptr[] = {1,2,23,6,5,6};
printf("%d",&ptr[3]-&ptr[0]);
}

Answers were Sorted based on User's Feedback



main() { int ptr[] = {1,2,23,6,5,6}; printf("%d",&ptr[3]-&ptr[0]); }..

Answer / sandeep

3
because aray pointer arthematic considers positions(index) of aray

Is This Answer Correct ?    46 Yes 10 No

main() { int ptr[] = {1,2,23,6,5,6}; printf("%d",&ptr[3]-&ptr[0]); }..

Answer / vivek

ans - none

Is This Answer Correct ?    18 Yes 12 No

main() { int ptr[] = {1,2,23,6,5,6}; printf("%d",&ptr[3]-&ptr[0]); }..

Answer / shivam jindal

That should print a 3. It's really the same as

printf("%d", 3-0);

...since:

ptr[3] is the 4th element in the ptr[] array.

&ptr[3] is a pointer to the 4th element in the ptr[] array.

&ptr[0] is similarly a pointer to the first element in ptr[].

&ptr[3] - &ptr[0] is a subtraction of two pointers. That's only defined (in standard C/C++) for pointers to elements in the same array, like in this case, and it's defined as the difference between the index values. That's where the 3-0 comes from.

The result of a pointer difference is an int. &ptr[0] - &ptr[3] results in 0-3 which is -3.

Is This Answer Correct ?    5 Yes 3 No

main() { int ptr[] = {1,2,23,6,5,6}; printf("%d",&ptr[3]-&ptr[0]); }..

Answer / dipak

In int at least 2 bytes are used for size and we know that &ptr[] gives the address of ptr .
&ptr[3]-&ptr[0]
Size of &ptr[3] is 3*2=6 times greater than Size of &ptr[0] is 1*2=2
ptr[0] also have any value that's why I consider it 1
So 6-2=4

Is This Answer Correct ?    4 Yes 3 No

main() { int ptr[] = {1,2,23,6,5,6}; printf("%d",&ptr[3]-&ptr[0]); }..

Answer / mitesh mahera

I need a answer aboutthis question..if any can ?!

Is This Answer Correct ?    4 Yes 6 No

main() { int ptr[] = {1,2,23,6,5,6}; printf("%d",&ptr[3]-&ptr[0]); }..

Answer / deveshdashora

6

Is This Answer Correct ?    6 Yes 10 No

main() { int ptr[] = {1,2,23,6,5,6}; printf("%d",&ptr[3]-&ptr[0]); }..

Answer / jithin ramakrishnan

2

Is This Answer Correct ?    0 Yes 4 No

main() { int ptr[] = {1,2,23,6,5,6}; printf("%d",&ptr[3]-&ptr[0]); }..

Answer / baba

Ans: 12

The expression in printf evaluates the difference of the memory addresses of ptr[3] and ptr[0]

Is This Answer Correct ?    5 Yes 10 No

Post New Answer

More C Interview Questions

main() { int i; printf("%d",i^i); }

1 Answers  


How can I send mail from within a c program?

0 Answers  


What is time null in c?

0 Answers  


Why are all header files not declared in every c program?

0 Answers  


How would you obtain the current time and difference between two times?

0 Answers   TISL,






Do you know the use of 'auto' keyword?

0 Answers  


Explain this code. #include <stdio.h> void f1(int *k) { *k = *k + 10; } main ( ){ int i; i = 0; printf (" The value of i before call %d \n", i); f1 (&i); printf (" The value of i after call %d \n", i); }

3 Answers   IBM,


write the program to find multiplication of 2-D matrix??????????

1 Answers  


explain memory layout of a C program

2 Answers  


what is the difference between getch() and getche()?

7 Answers   Infosys,


What are c header files?

0 Answers  


How to delete a node from linked list w/o using collectons?

0 Answers   Zycus Infotech,


Categories