#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一樣取地址,進行函數傳遞,修改主調函數中結構體的成員的值。
