C Programming - Strings - Discussion

Discussion Forum : Strings - Find Output of Program (Q.No. 2)
2.
What will be the output of the program ?
#include<stdio.h>

int main()
{
    char p[] = "%d\n";
    p[1] = 'c';
    printf(p, 65);
    return 0;
}
A
a
c
65
Answer: Option
Explanation:

Step 1: char p[] = "%d\n"; The variable p is declared as an array of characters and initialized with string "%d".

Step 2: p[1] = 'c'; Here, we overwrite the second element of array p by 'c'. So array p becomes "%c".

Step 3: printf(p, 65); becomes printf("%c", 65);

Therefore it prints the ASCII value of 65. The output is 'A'.

Discussion:
12 comments Page 2 of 2.

John said:   1 decade ago
@Rishi.

char p[] is an array that having each array value.
p[0]=%
p[1]=d
p[2]=\
p[3]=n
then p[1]=d=c and printf("%d\n",65);
printf will change to printf("%c\n",65);
Now printf can print only character value(as of %c) finally print ASCII value of 65=A.
(3)

Rishi said:   1 decade ago
How p becomes %c in the last printf statement?


Post your comments here:

Your comments will be displayed after verification.