Consider the following C program segment:
char p[20];char *s = "string";int length = strlen(s);int i;for (i = 0; i < length; i++) p[i] = s[length — i];printf("%s",p); |
The output of the program is
a) gnirts
b) gnirt
c) string
d) no output is printed
a) gnirts
b) gnirt
c) string
d) no output is printed
Answer(d)
Let us consider below line inside the for loop
p[i] = s[length — i];
For i = 0, p[i] will be s[6 — 0] and s[6] is ‘\0’
So p[0] becomes ‘\0’. It doesn’t matter what comes in p[1], p[2]….. as P[0] will not change for i >0. Nothing is printed if we print a string with first character ‘\0’
Let us consider below line inside the for loop
p[i] = s[length — i];
For i = 0, p[i] will be s[6 — 0] and s[6] is ‘\0’
So p[0] becomes ‘\0’. It doesn’t matter what comes in p[1], p[2]….. as P[0] will not change for i >0. Nothing is printed if we print a string with first character ‘\0’
No comments:
Post a Comment