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 @ 2018-01-03 12:02  温柔的风  阅读(939)  评论(0编辑  收藏  举报