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