C语言,结构体指针案例

案例一:

c 复制代码
#include <stdio.h>
#include <stdbool.h>
#include <string.h>  // 添加string.h头文件用于strcpy
//结构体指针

//方式 1 : 先定义结构体
struct Dog
{
    char *name;
    int age;
    char weight;
};

//方式 1 : 
char *get_dog_info(struct Dog dog)
{
    static char info[40];
    sprintf(info, "name:%s, age:%d, weight:%d", dog.name, dog.age, dog.weight);
    return info;
};

char *get_dog_info1(struct Dog *dog)
{
    static char info1[30];//静态局部指针变量
    sprintf(info1, "name:%s, age:%d, weight:%d", dog->name, dog->age, dog->weight);
    return info1;
};


int main()
{
    //方式1
    struct Dog dog = {"旺财", 2, 10};
    printf("dog info: %s\n", get_dog_info(dog));

    //方式2
    struct Dog *dog1 = &dog;
    //或
    char *Info = NULL;
    Info = get_dog_info1(dog1);
    printf("dog1 info: %s\n", Info);
    printf("dog1 info: %s\n", get_dog_info1(dog1));
    return 0;
}

案例二:

c 复制代码
#include <stdio.h>
#include <stdbool.h>
#include <string.h>  // 添加string.h头文件用于strcpy
//结构体指针

//方式 1 : 先定义结构体
struct Box
{
   double length;
   double width;
   double height;
};

double bulk(struct Box *box)
{
    return box->length * box->width * box->height; //使用结构体指针访问结构体成员
}



int main()
{
    //方式1
    struct Box box1;
    printf("请输入长、宽、高:\n");
    scanf("%lf %lf %lf", &box1.length, &box1.width, &box1.height);
    printf("体积 = %.2lf\n", bulk(&box1)); //使用结构体指针作为函数参数
    return 0;
}

案例三:

c 复制代码
#include <stdio.h>
#include <stdbool.h>
#include <string.h>  // 添加string.h头文件用于strcpy
//结构体指针

//方式2 : 在函数中定义结构体
struct Person
{
    char name[20];
    int age;
    double pay;
};

void print(struct Person *ptr)
{
    // printf("姓名:%s,年龄:%d,工资:%.2lf\n", p->name, p->age, p->pay); //使用结构体指针访问结构体成员
    ptr->pay =( ptr->age > 18) ? 3000 : 1000;
}


int main()
{
    //方式2
    struct Person ptr11;
    printf("请输入姓名、年龄\n");
    scanf("%s %d", &ptr11.name, &ptr11.age);

    print(&ptr11);
    struct Person *ptr = &ptr11;
    printf("姓名:%s ,年龄:%d ,工资:%.2lf \n", ptr->name, ptr->age, ptr->pay); //使用结构体指针访问结构体成员
    return 0;
}
相关推荐
2603_965148117 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
SuperByteMaster10 小时前
timer.c 介绍
c语言
知无不研10 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
cfm_291410 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
C++ 老炮儿的技术栈12 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐
qq_4480111612 小时前
C语言中的柔性数组
c语言·开发语言·柔性数组
小白学大数据12 小时前
长周期爬虫的数据一致性:断点续爬 + 事务回滚保障采集质量
开发语言·爬虫·测试工具
zlinear数据采集卡12 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
Poo_Chai13 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
瑞码空间13 小时前
Java 图形界面(GUI)完整知识点手册
java·开发语言·图形界面·swing