#includestruct Person { char *name; };void change1(struct Person p);void change2(struct Person *p);int main(){ /*************************************************** *结构体和函数 * 1、当结构作为函数的参数时,只是将实参结构体所有成员的值对应地赋值给了 * 形参结构体的所有成员 * 2、当结构体形参是指针时,会影响外面结构体的值 * *注意结构体类型的定义要在函数前面 ****************************************************/ struct Person p = { "test"}; change1(p); //不会改变结构体变量的值 printf("name = %s\n", p.name); change2(&p); //可以改变结构体变量的值 printf("name = %s\n", p.name); return 0;}void change1(struct Person p){ p.name = "changed";}void change2(struct Person *p){ p->name = "changed";}
name = testname = changed