1.1 KiB
1.1 KiB
- The following function calls supposedly write a single new-line character, but some are incorrect. Identify which calls don't work and explain why.
b. printf("%c", "\n"); - This is invalid because the double quotes make \n a string, but it's being displayed with the %cformatting specifier.
c. printf(%s, '\n'); - This is invalid because it's trying to display a char using the string formatting specifier.
e. printf('\n'); - printf's first argument should be a string, not a char.
h. putchar("\n"); - putchar's first argument should be a char, not a string.
i. puts('\n'); - puts's first argument should be a string, not a char.
j. puts("\n"); - puts will write a newline after writing a string, so this will write two newlines.
- Suppose that
phas been declared as follows:
char *p = "abc";
Which of the following function calls are legal? Show the output produced by each legal call, and explain why all the others are illegal.
// A - Not legal, because putchar accepts a `char`, not a pointer.
putchar(p);
// B - Legal, output: `a`