C Programming - Declarations and Initializations - Discussion

Discussion Forum : Declarations and Initializations - Find Output of Program (Q.No. 12)
12.
What will be the output of the program?
#include<stdio.h>
int main()
{
    int X=40;
    {
        int X=20;
        printf("%d ", X);
    }
    printf("%d\n", X);
    return 0;
}
40 40
20 40
20
Error
Answer: Option
Explanation:
In case of a conflict between a local variable and global variable, the local variable gets priority.
Discussion:
22 comments Page 1 of 3.

Gangadhararao said:   1 decade ago
#include<stdio.h>
int main()
{
int X=40;
{
int X=20;
printf("%d ", X);
}
printf("%d\n", X);
return 0;
}

Please send me out put of this program and reasons behaind it.

Sebastinrichardj said:   1 decade ago
OUTPUT: 20,40

x= 40, is a global variable , x=20 is a local variable in this program,
here,In case of a conflict between a local variable and global variable, the local variable gets priority.
so, first 20 id printed ,then 40 is printed,

Thamarai said:   1 decade ago
Can we declare "int x=40" as function?

Aniket said:   1 decade ago
Ya exactly Thamarai "int x=40" is not the way of declaring the function the program should give an error during the execution.

Sameer said:   1 decade ago
Can we use {} in between our program if its not use for function?

Siva Ram said:   1 decade ago
Is it same for the declaration as global and external?

Krishna said:   1 decade ago
What is the different b/w local variable and global variable?

Naman said:   1 decade ago
@Krishna.

Global variable is declared at the beginning of the program.

Local var. is declared within a module.

Naveen said:   1 decade ago
@Sameer.

Yes its called block, scope of the variable is inside that block.

@Aniket.

Its not a function declaration its just variable declaration and followed is the block.

@Thamarai.

Int x=40 its not a function declaration its normal variable declaration.

Bad programmer said:   1 decade ago
Here there is no global and local concept. Both are local to main but x=40 is accessible entire main function whereas x=20 only in that block of code.

For clear view just go through definition of auto variables.


Post your comments here:

Your comments will be displayed after verification.