Determine Output:
void main()
{
char far *farther, *farthest;
printf("%d..%d", sizeof(farther), sizeof(farthest));
}
void main()
{
char far *farther, *farthest;
printf("%d..%d", sizeof(farther), sizeof(farthest));
}
A. 4..2
B. 2..2
C. 4..4
D. 2..4
Answer: Option C
Solution (By Examveda Team)
In the given C program code snippet:
void main()
{
char far *farther, *farthest;
printf("%d..%d", sizeof(farther), sizeof(farthest));
}
The sizeof operator is used to determine the size, in bytes, of a variable or data type.
1. **farther** and **farthest** are both pointers of type **char***. In C, the size of a pointer is typically **4 bytes** on a 32-bit system or **8 bytes** on a 64-bit system. Assuming a standard 32-bit architecture, the size of both pointers would be **4 bytes**. 2. Therefore, the output of the printf function will be: - sizeof(farther) = 4 - sizeof(farthest) = 4
The printf statement prints these two sizes, resulting in the output **"4..4"**.
Hence, the correct answer is **Option C: 4..4**.
What difference it would make between normal pointer and far pointer?
It should look like below right?
char far,*farther,*farthest;
There is comma missing between far and *farther.
Is it valid way of declaring?
It depends on the compiler.
If you are using a 32-bit system, then it will be 4 bytes, but if you are using a 64-bit system, then it will be 8 bytes.
So the answer should be 4-4, not 4-2.
at any case, size of pointer variable = sizeof(unsigned int). because pointer variable always store address which is nothing but unsigned int.
It depends on compiler that we are using,if our machine is 64bit then pointer is 8byte. if it is 32bit then it is 4 byte.
In this case we are trying to print size of pointer not *ptr(i.e char pointer).
This is a DOS-only program, it won't work in GCC or other modern compilers, far pointers are different types of pointers like near pointer and huge pointer.
the answer should be 4 4
correct answer is 2..2(or 4..4 depending on compiler you are using ). Because you are printing sizeof(farther) and sizeof(farthest), both are char pointers.
Why ans B is right
your solution is wrong
Please explain how ,it is 4,2
If we see the the concept of pointer ,pointer does not depend on datatype ,its depend on system
pls explain anyone as
according to me its 2,2
Acording to me it shoud be 4 4 bcz pointer size is same always and depends upon int size of systm then it is 4 2 what is far plz explain
pls explain detail...
how pointer size is 2 ?
plz detail explanation
the answer should be 4...4 because pointer stores address of a variable which is of integer type and points the value of type of its datatype.