Predict the output of following program
#include <iostream>
using namespace std;
int main()
{
const char * p = "12345" ;
const char **q = &p;
*q = "abcde" ;
const char *s = ++p;
p = "XYZWVU" ;
cout << *++s;
return 0;
}
|
(A) Compiler Error
(B) c
(C) b
(D) Garbage Value
Answer: (B)
Explanation: Output is ‘c’
const char* p = “12345″ declares a pointer to a constant. So we can’t assign something else to *p, but we can assign new value to p.
const char **q = &p; declares a pointer to a pointer. We can’t assign something else to **q, but we can assign new values to q and *q.
*q = “abcde”; changes p to point to “abcde”
const char *s = ++p; assigns address of literal ”bcde” to s. Again *s can’t be assigned a new value, but s can be changed.
The statement printf(“%cn”, *++s) changes s to “cde” and first character at s is printed.
Quiz of this Question
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
28 Jun, 2021
Like Article
Save Article