Predict the output or error(s) for the following:
C aptitude 1.1
Explanation: p is a pointer to a "constant integer". But we tried to change the value of the "constant integer".
C aptitude 1.2
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].
C aptitude 1.3
C aptitude 1.1
void main() { int const * p=5; printf ( "%d" ,++(*p)); } |
Explanation: p is a pointer to a "constant integer". But we tried to change the value of the "constant integer".
C aptitude 1.2
main() { char s[ ]= "man" ; int i; 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].
C aptitude 1.3
main() { float me = 1.1; double you = 1.1; if (me>=you) printf ( "I love U" ); else printf ( "I hate U" ); } |
No comments:
Post a Comment