main()
{
int ptr[] = {1,2,23,6,5,6};
printf("%d",&ptr[3]-&ptr[0]);
}
Answers were Sorted based on User's Feedback
Answer / sandeep
3
because aray pointer arthematic considers positions(index) of aray
| Is This Answer Correct ? | 46 Yes | 10 No |
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 |
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 |
Answer / mitesh mahera
I need a answer aboutthis question..if any can ?!
| Is This Answer Correct ? | 4 Yes | 6 No |
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 |
write the program for prime numbers?
73 Answers Accenture, Aptech, Infosys, TCS,
What are variables c?
How can I discover how many arguments a function was actually called with?
struct node { int *a; char *b; char array[12]; }; struct node m,*n; assign the value in *a,*b,char array[12]
Linked lists -- can you tell me how to check whether a linked list is circular?
what is the little endian and big endian?
what are the advanced features of functions a) function declaration and prototypes b) calling functions by value or by reference c) recursion d) all the above
what will be the output of" printf("%d%d",scanf("%d% d",&a&b));"
How do you determine if a string is a palindrome?
why programs in c are running with out #include<stdio.h>? some warnings are display in terminal but we execute the program we get answer why? eg: main() { printf("hello world "); }
What is unary operator?
different between overloading and overriding