Related Articles

Related Articles

C++ | const keyword | Question 1
  • Difficulty Level : Hard
  • Last Updated : 27 Aug, 2013

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

Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :