C Programming - Const - Discussion

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

int main()
{
    const char *s = "";
    char str[] = "Hello";
    s = str;
    while(*s)
        printf("%c", *s++);

    return 0;
}
Error
H
Hello
Hel
Answer: Option
Explanation:

Step 1: const char *s = ""; The constant variable s is declared as an pointer to an array of characters type and initialized with an empty string.

Step 2: char str[] = "Hello"; The variable str is declared as an array of charactrers type and initialized with a string "Hello".

Step 3: s = str; The value of the variable str is assigned to the variable s. Therefore str contains the text "Hello".

Step 4: while(*s){ printf("%c", *s++); } Here the while loop got executed untill the value of the variable s is available and it prints the each character of the variable s.

Hence the output of the program is "Hello".

Discussion:
23 comments Page 3 of 3.

Rajat said:   10 years ago
*s++?

Now *s is 'H'.

If *s++ is done, won't that do 'H'+1?

Jayp said:   1 decade ago
A const variable can be indirectly modified by a pointer.

Nuzhat memon said:   1 decade ago
Const pointer can change its value not an address.


Post your comments here:

Your comments will be displayed after verification.