|
|
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)