C语言_结构体的4种定义初始化方式及案例

结构体是一种构造数据类型 (构造数据类型:数组类型、结构体类型(struct)、共用体类型(union))。用途:把不同类型的数据组合成一个整体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。

第一种:

复制代码
#include <stdio.h>
#include <string.h>
int main()
{
 struct PERSON{
     int age;
     int height;
     char name[15];
 }p1;
    p1.age = 28;
    p1.height = 178; 
    strcpy(p1.name, "phper");
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
复制代码

第二种:

复制代码
#include <stdio.h>
#include <string.h>
struct PSERSON{
    int age;
     int height;
     char name[15];
}p1={
    age:28,
    height:178,
    name:"phper"
};
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
复制代码

第三种:

复制代码
#include <stdio.h>
#include <string.h>
struct PSERSON{
    int age;
     int height;
     char name[15];
}p1={
    .age = 28,
    .height = 178,
    .name = "phper"
};
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
复制代码

第四种:

复制代码
#include <stdio.h>
#include <string.h>
struct PSERSON{
    int age;
     int height;
     char name[15];
}p1={28,178,"phper"};
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
复制代码

  结果 

 小案例:

复制代码
#include <stdio.h>
#include <string.h>
struct TEST
{  
    int age;
    int height;
    char name[15]; 
};  
      
void function_print(struct TEST p1)  
{  
    printf("%d\n",p1.age);  
    printf("%d\n",p1.height); 
    printf("%s\n",p1.name);   
}  
      
int main()
{  
    struct TEST test={28,178,"phper"};  
    function_print(test);  
    return 0;  
} 
复制代码

结果:

---------再来一个案例结合注释吸收一下---------

复制代码
#include <stdio.h>  
  
int main() {  
    //定义结构体类型  
    struct Person  
    {  
        int age;
        int height;
        char *name;  
    };  
    //初始化的4种方式  
    //1.定义的同时初始化  
    struct Person p1 = {28,178,"phper"};  
      
    //2.先定义再逐个初始化  
    struct Person p2;  
    p2.age = 28;  
    p2.height = 178;  
    p2.name = "phper";  
    
    //3.先定义再一次性初始化  
    struct Person p3;  
    p3 = (struct Person){28,178,"phper"};  
      
    //注意:结构体和数组在这里的区别,数组不能先定义再进行一次性初始化  
    //结构体要明确的告诉系统{}中是一个结构体  
      
    //4.指定将数据赋值给指定的属性  
    struct Person p4 = { .age=28 , .height=178, .name="phper"};  
    //打印结构体中取数据 //拿p4测试 
    printf("%d\n",p4.age);
    printf("%d\n",p4.height);
    printf("%s\n",p4.name);
     
    return 0;  
}  
复制代码

 

posted @   温柔的风  阅读(1217)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示