main()
{
int ptr[] = {1,2,23,6,5,6};
printf("%d",&ptr[3]-&ptr[0]);
}
Answer Posted / 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 |
Post New Answer View All Answers
what is the role you expect in software industry?
WRITE A PROGRAM TO MERGE TWO SORTED ARRAY USING MERGE SORT TECHNIQUE..
what is event driven software and what is procedural driven software?
What is nested structure?
What are bitwise shift operators in c programming?
Is printf a keyword?
What is bin sh c?
What is equivalent to ++i+++j?
Find duplicates in a file containing 6 digit number (like uid) in O (n) time.
How does free() know explain how much memory to release?
How can you convert integers to binary or hexadecimal?
What is openmp in c?
What are the standard predefined macros?
What are void pointers in c?
Why c is a procedural language?