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;
}
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.
Narendar said:
1 decade ago
Yes it works fine in gcc because it is compiler dependent. What I meant to say is data type range.
Mms said:
1 decade ago
Can be build in data type as a variable name?
Mustafa said:
1 decade ago
In gcc compiler it is running fine, no warnings and errors.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers