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 do you mean by c?
What is the use of a ‘ ’ character?
Why is c called c not d or e?
What Is The Difference Between Null And Void Pointer?
What is external variable in c?
Explain the use of bit fieild.
Explain the difference between malloc() and calloc() function?
What is wild pointer in c with example?
What is the difference between mpi and openmp?
What is 1f in c?
‘ C’ PROGRAME TO SHOW THE TYPE OF TRANGLE BY ACCEPTING IT’S LENGTH .
Can you mix old-style and new-style function syntax?
What are different types of pointers?
difference between native and cross compilers
Explain what is a program flowchart and explain how does it help in writing a program?