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一样取地址,进行函数传递,修改主调函数中结构体的成员的值。

posted @ 2020-05-31 18:30  abel2020  阅读(1167)  评论(0编辑  收藏  举报