Code :
foo()
{
}
int main()
{
   int a=20;
   a = foo(20);
   printf("\n\n\t A : %d",a); // will print zero.
}
Question :
- You may notice that there is no return type for foo(). And it is considered as 'int', Why? Why this 'Implicit int' rule? Why the designers of C loved 'int' so much? 
- foo() doesn't have parameter declaration, it says that it can accept variable number of arguments. So where does passed arguments go? e.g. foo(20) where did 20 go? 
- in above example printf prints zero, why? 
Now, consider :
foo()
{
}
int main()
{
   int a=20;
   a = foo(a);
   printf("\n\n\t A : %d",a); // It'll print 20. 
}
- Now printf prints 20 why not 0 like earlier?
 
     
     
    