C Programming - Pointers - Discussion

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

int main()
{
    char *str;
    str = "%s";
    printf(str, "K\n");
    return 0;
}
Error
No output
K
%s
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
57 comments Page 5 of 6.

Amir Khan said:   1 decade ago
Can anyone explain me this:

If,
int *str="abcd"
Then first character will be 'a' not '"'(Double quotes).

Then, if we initialize as,
str = "%s";
printf(str, "K\n");

Then printf requires "--"(double quotes).

And if we replace str value in printf function, then it will write as,
printf(%s,"K\n");

Got my point everybody? Please reply me.
(2)

Nithiya said:   1 decade ago
int main()
{
int *str;
str = "%d";
printf(str, "5\n");
return 0;
}

What will be the output?

Shahin said:   1 decade ago
So, can we assign a format specifier to the variable ? If so, the above solution will be correct explain me?

Shahin said:   1 decade ago
@Nithiya.

The output will be garbage value.

Mitali said:   10 years ago
@Shahin.

How it will give garbage value as an output?

Mohit said:   10 years ago
Change %s with %c, %x. You will see that str is replace by different output.
(2)

Abu zaid said:   10 years ago
%s is the format specifier type of string.

We can declare it anywhere in the local scope.
(2)

Manjeet said:   10 years ago
So why this not possible when I replace char data type with int?
(1)

Sachin said:   9 years ago
If we try to print only str it will show (null) as output and in the code, there is no need of str.
It is only taking printf(" ");
Whatever you write inside the quotes is only printing that's it.
(2)

Siva said:   9 years ago
int i;
int main()
{
int i;
i=78;
void *vptr;
vptr = &i;
printf("%d",& *vptr);

\\as this gives garbage value because type casting should be done.(*(int*)vptr)); and in calling function we have given **q.we know that *q=&vptr and **q=value of vptr so vptr value is 0 because it is initialised with void data type.and size to store 0 we get the size to store 0 because any pointer by default gets int. So we get the size and 0 are stored.
(1)


Post your comments here:

Your comments will be displayed after verification.