There seems to be a confusion among people (even authors of Many books) about ways of passing values to a function. Question: How many ways are there to pass a variable to a function in C ? Ans: proposed by most people (authors) : Passing variables by values Passing variables by references My Reaction : Wrong !!!!!!! To make thing even worse, the example most writer put up for passing values by references is this : #include<stdio.> void swap (int *x, int *y) { int* t; *t=*x; *x=*y; *y=*t; } int main () { int x,y; x=100; y=200; swap(&x,&y); printf("%d,%d",x,y); } I don't know if you get this example or not, But this example is wrong. This example is using pointers , and pointers are not references. So again: Question: How many ways are actually there to pass variables to functions in C ? Well there is only one way: Passing variables by value. Question: But What about books claiming that vari...