C Language Aptitude Question Answers
C Language Aptitude Questions
Note : All the programs are tested under Turbo
It is assumed that,
- Programs run under DOS environment,
- The underlying machine is an x86 system,
- Program is compiled using Turbo C/C++ compiler.
The program output may depend on the information based on this assumptions
(for example sizeof(int) == 2 may be assumed).
Predict the output or error(s) for the following:
1. void main()
int const * p=5;
Answer: Compiler error: Cannot modify a constant value.
Explanation: p is a pointer to a "constant integer". But we
tried to change the value of the "constant integer".
char s[ ]="man";
for(i=0;s[ i ];i++)
printf("\n%c%c%c%c",s[ i ],*(s+i),*(i+s),i[s]);
Explanation: s[i], *(i+s), *(s+i), i[s] are all different ways
of expressing the same idea. Generally array name is the base address for that
array. Here s is the base address. i is the index number/displacement from the
base address. So, indirecting it with * is same as s[i]. i[s] may be surprising.
But in the case of C it is same as s[i].