|
|
struct BankAccount // I define struct here for brevity { int accNum; double balance; }; // x is passed-by-value void f( struct BankAccount x ) { x.accNum = 888; x.accNumx.balance = 9999.0; // Updates copy } int main(int argc, char *argv[]) { struct BankAccount a; a.accNum = 123; a.balance = 1000.0; printf("a = (%d, %f)\n", a.accNum, a.balance); // 123, 1000.0 f(a); // a = the entire struct, therefore: C passes "a" by value printf("a = (%d, %f)\n", a.accNum, a.balance); // a is unchanged ! } |
DEMO: demo/C/set2/struct-param.c (also check out: struct_param.java)