#include <stdio.h> #include <stdbool.h> #include <string.h> struct arr //定义结构体类型 { char* arr_name; int len; int maxlen; }; main() { struct arr array1 = { "ar",3,10 }; //创建结构体变量 struct arr* parray1; parray1 = &array1; printf("main: %s %d %d\n", parray1->arr_name, parray1->len, parray1->maxlen); //change(&array1); //指针传递 change(parray1); printf("main: %s %d %d\n", parray1->arr_name, parray1->len, parray1->maxlen); } void change(struct arr* ar) { printf("change: %s %d %d\n", ar->arr_name, ar->len, ar->maxlen); ar->len = 10; printf("change-change: %s %d %d\n", ar->arr_name, ar->len, ar->maxlen); }
结构体可以看做是新的数据类型,结构体变量可以像int一样取地址,进行函数传递,修改主调函数中结构体的成员的值。