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;
}
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.
Monish said:
8 years ago
Since array gets a place in stack section so it can be modified hence we can change its value and as you are saying char p[] is not a string literal if you want to make it a string literal then give it as character pointer which can't be modified further.
Rahul said:
5 years ago
Inside p base address will be present, then how p inside gives "%c\n". Rather it should give the only % ? Am I right?
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers