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: unknown pointer conversion

B Error: cannot convert ptr const value

C No error

D None of above

ANS:A - Error: unknown pointer conversion

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 not a constant; it will not be an error to modify the pointed character; There will be an error only to modify the pointer itself. Step 4: *ptr = 'a'; The value of ptr is assigned to 'a'. Step 5: ptr = yourbuf; Here, we are changing the pointer itself, this will result in the error 'cannot modify a const object'.