Const - Programming

Q1:

Point out the error in the program.
#include<stdio.h>
#define MAX 128

int main()
{
    char mybuf[] = 'India';
    char yourbuf[] = 'Aptitude';
    char const *ptr = mybuf;
    *ptr = 'a';
    ptr = yourbuf;
    return 0;
}

A Error: cannot convert ptr const value

B Error: unknown pointer conversion

C No error

D None of above

ANS:A - Error: cannot convert ptr const value

Step 1: char mybuf[] = 'India'; The variable mybuff is declared as an array of characters and initialized with string 'India'. Step 2: char yourbuf[] = 'Aptitude'; The variable yourbuf is declared as an array of characters and initialized with string 'Aptitude'. Step 3: char const *ptr = mybuf; Here, ptr is a constant pointer, which points at a char. The value at which ptr it points is a constant; it will be an error to modify the pointed character; There will not be any error to modify the pointer itself. Step 4: *ptr = 'a'; Here, we are changing the value of ptr, this will result in the error 'cannot modify a const object'.