Curioustab
Aptitude
General Knowledge
Verbal Reasoning
Computer Science
Interview
Take Free Test
Aptitude
General Knowledge
Verbal Reasoning
Computer Science
Interview
Take Free Test
Complicated Declarations Questions
What does the declaration char *arr[10]; signify in C? Explain the type and structure represented by arr in this declaration.
C declarations and pointers: interpret the following declaration int (*pf)(); What does it signify?
C declarations: write a declaration for "An array of three pointers to chars" Choose the correct C syntax that matches the English statement.
C declarations: interpret the following declaration int *f(); What exactly does it mean?
C declarations: write a declaration for "A pointer to a function which receives an int pointer and returns a float pointer"
C declarations: interpret the following declaration char **argv;
C declarations: write a declaration for "A pointer to a function which receives nothing and returns nothing"
C declarations: interpret the following declaration char *scr;
C declarations: interpret the following declaration void *cmp();
C declarations: write a declaration for "A pointer to an array of three chars"
C declarations: interpret the following declaration void (*cmp)();
In C/C++, how should we interpret the declaration: int ptr[30]; Explain precisely what ptr represents in terms of arrays and pointers.
Turbo C memory models — sizes of near, far, and huge pointers (pointer-to-pointer declarations).\n\n#include
\n\nint main()\n{\n char near near ptr1; / near pointer to near char => near pointer size */\n char near far ptr2; / far pointer to near char => far pointer size */\n char near huge ptr3; / huge pointer to near char => huge pointer size /\n printf("%d, %d, %d\n", (int) sizeof(ptr1), (int) sizeof(ptr2), (int) sizeof(ptr3));\n return 0;\n}\n\nWhat is the output on Turbo C?
In Turbo C (16-bit DOS memory model), what does this program print for the sizes of the declared pointer variables?\n\n#include
\n\nint main()\n{\n char huge *near *ptr1; // ptr1: near pointer to (huge char *)\n char huge *far *ptr2; // ptr2: far pointer to (huge char *)\n char huge *huge *ptr3; // ptr3: huge pointer to (huge char *)\n printf("%d, %d, %d\n", sizeof(ptr1), sizeof(ptr2), sizeof(ptr3));\n return 0;\n}
Under Turbo C (16-bit DOS), evaluate the sizes printed by this program with mixed near/far/huge on multi-level pointers:\n\n#include
\n\nint main()\n{\n char huge *near *far *ptr1; // ptr1: far pointer to (near pointer to huge char)\n char near *far *huge *ptr2; // ptr2: huge pointer to (far pointer to near char)\n char far *huge *near *ptr3; // ptr3: near pointer to (huge pointer to far char)\n printf("%d, %d, %d\n", sizeof(ptr1), sizeof(ptr2), sizeof(ptr3));\n return 0;\n}
In Turbo C (DOS), determine the sizes printed by this program mixing dereferences in sizeof:\n\n#include
\n\nint main()\n{\n char huge *near *far *ptr1;\n char near *far *huge *ptr2;\n char far *huge *near *ptr3;\n printf("%d, %d, %d\n", sizeof(ptr1), sizeof(**ptr2), sizeof(ptr3));\n return 0;\n}
Turbo C (DOS) pointer sizes: predict the output for these declarations and sizeof calls:\n\n#include
\n\nint main()\n{\n char far *near *ptr1; // near pointer\n char far *far *ptr2; // far pointer\n char far *huge *ptr3; // huge pointer\n printf("%d, %d, %d\n", sizeof(ptr1), sizeof(ptr2), sizeof(ptr3));\n return 0;\n}
Turbo C (DOS): evaluate sizeof results that mix pointer levels and dereferences:\n\n#include
\n\nint main()\n{\n char huge *near *far *ptr1;\n char near *far *huge *ptr2;\n char far *huge *near *ptr3;\n printf("%d, %d, %d\n", sizeof(ptr1), sizeof(*ptr2), sizeof(*ptr3));\n return 0;\n}
C typedefs and shadowing in Turbo C: what does this program print?\n\n#include
\ntypedef void v;\ntypedef int i;\n\nint main()\n{\n v fun(i, i);\n fun(2, 3);\n return 0;\n}\n\nv fun(i a, i b)\n{\n i s = 2; // s is int\n float i; // here, i is a variable of type float (shadows typedef name)\n printf("%d,", sizeof(i));\n printf(" %d", abs);\n}
Unsigned wraparound in Turbo C (DOS): what does this program print?\n\n#include
\ntypedef unsigned long int uli;\ntypedef uli u;\n\nint main()\n{\n uli a;\n u b = (u)-1;\n a = (uli)-1;\n printf("%lu, %lu", a, b);\n return 0;\n}
1
2