C Programming - Const - Discussion

Discussion Forum : Const - Point Out Errors (Q.No. 2)
2.
Point out the error in the program (in Turbo-C).
#include<stdio.h>
#define MAX 128

int main()
{
    const int max=128;
    char array[max];
    char string[MAX];
    array[0] = string[0] = 'A';
    printf("%c %c\n", array[0], string[0]);
    return 0;
}
Error: unknown max in declaration/Constant expression required
Error: invalid array string
None of above
No error. It prints A A
Answer: Option
Explanation:

Step 1: A macro named MAX is defined with value 128

Step 2: const int max=128; The constant variable max is declared as an integer data type and it is initialized with value 128.

Step 3: char array[max]; This statement reports an error "constant expression required". Because, we cannot use variable to define the size of array.

To avoid this error, we have to declare the size of an array as static. Eg. char array[10]; or use macro char array[MAX];

Note: The above program will print A A as output in Unix platform.

Discussion:
13 comments Page 2 of 2.

AMIN said:   9 years ago
Yes, option 'D' is correct answer.

Shabanam said:   8 years ago
I am confused please explain it.

Mohammad Mohsin said:   10 years ago
Definitely it will print A.


Post your comments here:

Your comments will be displayed after verification.