本文共 905 字,大约阅读时间需要 3 分钟。
/* test3.c */#includestruct data { int i; char *msg;};void changeData1(struct data d); // 结构体类型参数void changeData2(struct data *d); // 结构体指针类型参数void main(){ struct data d; d.i = 0; d.msg = "0000000"; printf("init0, i:%d, msg:%s\n", d.i, d.msg); // changeData1(d); printf("change1, i:%d, msg:%s\n", d.i, d.msg); // changeData2(&d); printf("change2, i:%d, msg:%s\n", d.i, d.msg);}void changeData1(struct data d){ d.i = 1; d.msg = "111111111";}void changeData2(struct data *d){ d -> i = 2; d -> msg = "22222222222";}
运行结果:
ubuntu@cuname:~/dev/beginning-linux-programming/test$ gcc -o test3 test3.cubuntu@cuname:~/dev/beginning-linux-programming/test$ ./test3init0, i:0, msg:0000000 // 初始值change1, i:0, msg:0000000 // 结构体类型参数 更改失败 change2, i:2, msg:22222222222 // 结构体指针类型 修改成功
转载地址:http://oclsi.baihongyu.com/