what is the diff b/w static and non static variables in C.
Give some examples plz.

Answers were Sorted based on User's Feedback



what is the diff b/w static and non static variables in C. Give some examples plz...

Answer / anil kumar

Static variables are used for internal contextual
communication purpose.
non static variables are not used for contextual
communication
for that please go through the below code:

static int i=10;
int main()
{
int x=20;
Printf(“%d %d”,x, i);
Fun();
return 0;
}
Void Fun()
{
Printf(“%d”, i);
}

In the above code “i” is the static variable and “x “is the
local variable

Is This Answer Correct ?    22 Yes 7 No

what is the diff b/w static and non static variables in C. Give some examples plz...

Answer / parth ujenia

main()
{
int i=5;

while(i!=0)
{
printf("%d",i--);
main();
}
getch();
}

output: 54321

Is This Answer Correct ?    7 Yes 1 No

what is the diff b/w static and non static variables in C. Give some examples plz...

Answer / vignesh1988i

when we have declared a variable as static...... we cant
initilize it again....... the meaning of static storage
class is for only one time initilization.... whenever the
compailer come accross the same static keyword ,... the
present value in that variable will get printed as the
compailer ignores the line static.........
eg:::::
#include<stdio.h>
#include<conio.h>
void main()
{
for(int i=0;i<3;i++)
{
static int p=1;
printf("%d ",p);
p++;
}
output will be:: 1 2 3
since the compailer ignores the static int p=1 after it
initilizs once...... and one more thing.. when we refer
variable p after the loop structure it will give an error
that::: "UNDEFINED SYMBOL 'P'" ,because the scope of this
static is only under the block and not ourtside.....

non static :: it is called as automatic storage class.... in
programs we would have given as;;
int a; or char sd; etc...
these inside the compailer treated as automatic storage
class..... the scope of this storage class is only undere
the block... after comming out it dies......

eg:::::::
#include<stdio.h>
#include<conio.h>
void main()
{
int a=12;
{
a=90;
printf("%d",a);
}
printf("%d",a);
}
the output will be::::::: 90 12.... because of the above
mentioned scope.....

i think you can clearely understand the concept....... if
you didnt understand ... send mail to me.. we can
discuss.... softvig_88@yahoo.com...
thank you

Is This Answer Correct ?    6 Yes 4 No

Post New Answer

More C Interview Questions

What has to put when we are inserting as assembly language code into the C code? or When we are inserting as assembly language code into the C code we have to insert one thing at the start and of the assembly language. What are they?

2 Answers  


How can you allocate arrays or structures bigger than 64K?

0 Answers  


Find the O/p of the following struct node { char *name; int num; }; int main() { struct node s1={"Harry",1331}; struct node s2=s1; if(s1==s2) printf("Same"); else printf("Diff"); }

1 Answers  


develop algorithms to add polynomials (i) in one variable

0 Answers   Ignou, TCS,


how to print "hai" in c?

13 Answers   TCS,


how do we remove the printed character in printf statement and write next it it

1 Answers  


what is the difference between auto and static keywords

1 Answers   cDot, College School Exams Tests, TCS,


hi to every one .. how to view table pool after creating the pooled table? plz help me.. if any knows abt this ..

0 Answers  


Explain what is the purpose of "extern" keyword in a function declaration?

0 Answers  


Why c is called a middle level language?

0 Answers  


What does return 1 means in c?

0 Answers  


How can I implement sets or arrays of bits?

0 Answers  


Categories