{{format('0')}} {{format('553')}} {{format('2192')}}

【C语言】传递 结构体变量 & 结构体指针 [ 编程杂谈 ]

大数据男孩 文章 正文

想做一个技术博客,奈何实力不够
分享

明妃

{{nature("2022-08-14 17:23:19")}}更新

结构体变量之间的传递

直接把 结构体 赋值给 另一个结构体变量

#include <stdio.h>

struct Date {
    int year;
    int month;
    int day;
} date = {
        .year = 2021,
        .month = 1,
        .day = 5
};

int main(void){

    struct Date d;
    d = date;
    printf("d 的值 :%d-%d-%d",d.year,d.month,d.day);
    return 0;
}

[mark]()

结构体 作为 函数参数 传递

把 结构体变量 作为函数的参数 传递给函数

#include <stdio.h>
// 定义结构体
struct Date {
    int year;
    int month;
    int day;
};
// 定义函数
struct Date getDate(struct Date date){
    // 给结构体赋值
    date.year = 2021;
    date.month = 1;
    date.day = 5;
    // 返回结构体
    return date;
}

int main(void){

    struct Date date,d;
    d = getDate(date);
    printf("日期为:%d-%d-%d",d.year,d.month,d.day);
    return 0;
}

[mark]()

结构体指针 作为 函数参数 传递

函数直接传入结构体会降低性能,传入结构体指针 能提高程序效率

#include <stdio.h>

struct Date {
    int year;
    int month;
    int day;
};

// 传入指针 不需要返回值
void getDate(struct Date *date){
    // 给结构体赋值
    date->year = 2021;
    date->month = 1;
    date->day = 5;
}

int main(void){

    struct Date date;
    getDate(&date); // 传入地址
    printf("日期为:%d-%d-%d",date.year,date.month,date.day);
    return 0;

}

[mark]()

动态申请结构体空间

动态申请,存储在 堆空间,用完记得释放

#include <stdio.h>
#include <stdlib.h>

struct Date {
    int year;
    int month;
    int day;
};

// 传入指针 不需要返回值
void getDate(struct Date *date){
    // 给结构体赋值
    date->year = 2021;
    date->month = 1;
    date->day = 5;
}

int main(void){
    struct Date *date;
    // 申请空间
    date = (struct Date *)malloc(sizeof(struct Date));

    getDate(date); // 传入地址
    printf("日期为:%d-%d-%d",date->year,date->month,date->day);
    // 释放空间
    free(date);
    return 0;
}

[mark]()

评论 0
0
{{userInfo.data?.nickname}}
{{userInfo.data?.email}}
TOP 2
Spark 2.0 单机模式与集群模式 安装

{{nature('2020-01-02 16:47:07')}} {{format('12521')}}人已阅读

TOP 3
Office 2016 Pro Plus 激活

{{nature('2019-12-11 20:43:10')}} {{format('9409')}}人已阅读

TOP 4
Linux上 MySQL 开启远程登陆的两种方法

{{nature('2019-12-26 17:20:52')}} {{format('7404')}}人已阅读

TOP 5
Linux 安装 MySQL 5.7

{{nature('2019-12-26 16:03:55')}} {{format('4878')}}人已阅读

目录

标签云

C语言 结构体

一言

# {{hitokoto.data.from || '来自'}} #
{{hitokoto.data.hitokoto || '内容'}}
作者:{{hitokoto.data.from_who || '作者'}}
自定义UI
配色方案

侧边栏