C语言结构体指针的示例代码

 更新时间:2025年07月14日 08:23:23   作者:暗影~行星  
本文主要介绍了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;
}

案例二:

#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;
}

案例三:

#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;
}

到此这篇关于C语言结构体指针的示例代码的文章就介绍到这了,更多相关C语言结构体指针内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • C++实现多项式相乘

    C++实现多项式相乘

    这篇文章主要介绍了C++实现多项式相乘方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • C语言与C++中const的用法对比

    C语言与C++中const的用法对比

    C语言中的const与C++有很大的不同,在C语言中用const修饰的变量仍是一个变量,表示这个变量是只读的,不可显示地更改,而在C++中用const修饰过后,就变成常量了
    2022-04-04
  • C++语言设计实现五子棋

    C++语言设计实现五子棋

    这篇文章主要为大家详细介绍了C++语言设计实现五子棋,包括数据结构和对象设计及主函数调用实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Objective-C 消息传递机制详解

    Objective-C 消息传递机制详解

    Objective-C语言中方法的传递有二种:①Selector ② Blocks,本文主要说一下Selector,本文以Objective-C 消息传递机制进行详细介绍,关于Blocks会在后续总结一下
    2012-11-11
  • 深入理解c语言数组

    深入理解c语言数组

    这篇文章主要介绍了c语言数组,有需要的朋友可以参考一下
    2013-12-12
  • C++中this指针用法详解及实例

    C++中this指针用法详解及实例

    这篇文章主要介绍了C++中this指针用法详解及实例的相关资料,需要的朋友可以参考下
    2017-04-04
  • C语言实现进制转换函数的实例详解

    C语言实现进制转换函数的实例详解

    这篇文章主要介绍了C语言实现进制转换函数的实例详解的相关资料,这里提供实现实例帮助大家实现改功能,需要的朋友可以参考下
    2017-08-08
  • 浅析C++中单链表的增、删、改、减

    浅析C++中单链表的增、删、改、减

    以下是对C++中单链表的增、删、改、减进行了详细的介绍,需要的朋友可以过来参考下
    2013-09-09
  • .h和.cpp文件的区别(zt)详细介绍

    .h和.cpp文件的区别(zt)详细介绍

    特别是对源文件和头文件的概念,需要深入对它了解,本文将详细介绍,需要了解的朋友可以参考下
    2012-11-11
  • 一文快速掌握C++双端数组容器deque的使用

    一文快速掌握C++双端数组容器deque的使用

    本文和大家分享的是和vector容器功能很像的容器——deque,了解deque容器的本质,使用方法以及与vector容器的不同之处,感兴趣的快跟随小编一起学习学习吧
    2022-07-07

最新评论