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;
}
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 2 of 3.
Jayp said:
1 decade ago
s is a pointer and you are not changing the value of some constant, so here pointer s is just doing what a pointer requires to do that is pointing to str and accessing the data stored in str.
So you can change cont pointer points to some other address but not directly the value.
So you can change cont pointer points to some other address but not directly the value.
Bhavani said:
1 decade ago
How to change the value of constant variable s?
Please explain.
Please explain.
Shyam said:
1 decade ago
Can anyone tell me how can we copy whole string by just one equal to sign. I mean we suppose to run a loop to copy a array from one to another but hear they just put one equal to and it is done how ?
Suresh Kumar said:
1 decade ago
Yes, s is a pointer to a constant character, and is initialized by "", thus the location to which s points can be changed, but the location cannot be changed using s, the while loop simply iterates over the string to give output "hello".
Mahesh napte said:
1 decade ago
Pointer can not be constant but it can store address af constant datatypes.
Nuzhat memon said:
1 decade ago
Const pointer can change its value not an address.
Khushi said:
1 decade ago
Can anyone explain this in detail? how can we assign a const pointer different values each time?
Chandu said:
1 decade ago
Here they are allocating location address of characters but till it is constant pointer we can't change its values.
Pallavi said:
1 decade ago
Here s points to the empty string and it is a constant pointer, then how can we assign string 'str' to 's'?
Am12cs said:
1 decade ago
Mohini concept is correct, while loop be excuted untill its value comes to null.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers