17 結構體指針作為參數的函數調用


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM