The value of variable in stack may be lost when we call another function or when we enter a block. so option b is incorrect.
Heap is a dynamic allocation part, we need the value of a variable to be static, so option c is incorrect.
Global variable also cannot be declared as local variable, so option D is incorrect.
When we store the value in an absolute address in program data space, the value of variable persists, So option A is correct.