zoukankan      html  css  js  c++  java
  • C/C++结构体语法总结

    转自:http://blog.csdn.net/dawn_after_dark/article/details/73555562

    结构体简介

          结构体属于聚合数据类型的一类,它将不同的数据类型整合在一起构成一个新的类型,相当于数据库中一条记录,比如学生结构体,整合了学号,姓名等等信息。结构体的好处就是可以对这些信息进行、整体管理操作,类似面向对象中类的属性,有了结构体,我就可以更好抽象描述一个类别,个人感觉类就是由结构体发展而来的。在C/C++中,结构体声明的关键字为struct。

    C语言结构体语法

    第一种语法表示

    struct 结构体名称{    

    数据类型 member1;    

    数据类型 member2;

    };

    这种方式在声明结构体变量时为:struct 结构体名称 结构体变量名

    example :

     1 #include<stdio.h>
     2 struct Student{
     3     int sNo;
     4     char name[10];
     5 };
     6 int main(){
     7     struct Student stu;
     8     scanf("%d",&stu.sNo);
     9     scanf("%s",stu.name);
    10     printf("%d
    ",stu.sNo);
    11 }

    第二种语法表示

    typedef struct 结构体名称{    

    数据类型 member1;    

    数据类型 member2;

    }结构体名称别名;

    这种方式在声明结构体变量时有两种方式。

    第一种:struct 结构体名称 构体变量名  

    第二种:结构体名称别名 结构体变量名

    原因:这里使用了typedef关键字,此关键字的作用就是声明数据类型的别名,方便用户编程,所以这里用了之后,结构体名称别名就相当于struct 结构体名称。在声明结构体变量时,就无需写struct了。 example:

     1 #include<stdio.h>
     2 typedef struct Student{
     3     int sNo;
     4     char name[10];
     5 }Stu;
     6 int main(){
     7     struct Student stu;  //方式一
     8     Stu stu1;            //方式二
     9     scanf("%d",&stu.sNo);
    10     scanf("%s",stu.name);
    11     printf("%d
    ",stu.sNo);
    12     scanf("%d",&stu1.sNo);
    13     scanf("%s",stu1.name);
    14     printf("%d
    ",stu1.sNo);
    15 }

    第三种方式

    struct 结构体名称{    

    数据类型 member1;    

    数据类型 member2;

    }结构体变量名;

    相当于:

    struct 结构体名称{    

    数据类型 member1;    

    数据类型 member2;

    };

    struct 结构体名称 结构体变量名;

    这种方式既定义了结构体名称,同时声明了一个结构体变量名。在其它地方也可以通过struct 结构体来再次声明其它变量,而第四种方法则不可以。

    example:

     1 #include<stdio.h>
     2 struct Student{
     3     int sNo;
     4     char name[10];
     5 }stu;      //此处stu 是变量名
     6 int main(){
     7     scanf("%d",&stu.sNo);
     8     scanf("%s",stu.name);
     9     printf("%d
    ",stu.sNo);
    10 }

    第四种方式

    struct {        

    数据类型 member1;    

    数据类型 member2;

    }结构体变量名;

    此方式是匿名结构体,在定义时同时声明2个结构体变量,但不能在其它地方声明,因为我们无法得知该结构体的标识符,所以就无法通过标识符来声明变量。

    example:

     1 #include<stdio.h>
     2 struct {
     3     int sNo;
     4     char name[10];
     5 }stu,stu1;     //匿名结构体,同时定义了2个结构体变量
     6 int main(){
     7     scanf("%d",&stu.sNo);
     8     scanf("%s",stu.name);
     9     printf("%d
    ",stu.sNo);
    10     scanf("%d",&stu1.sNo);
    11     scanf("%s",stu1.name);
    12     printf("%d
    ",stu1.sNo);
    13 }

    C++语言结构体语法

    C++语言结构体语法的C大同小异,声明结构体变量时可以省略struct 其它无变化! 具体参照C语言部分,在用到“struct 结构体名称”时,可以简写为“结构体名称”来声明。

  • 相关阅读:
    画图(三,进阶之绘制表盘)
    浅谈 Fork/Join
    VS中卸载Visual Assist X
    VS中显示行号
    zabbix server安装(二)
    zabbix监控的基础概念、工作原理及架构(一)
    k8s role
    如何构建 Redis 高可用架构?
    Mysqldump参数大全
    kubespray 一键安装k8s集群
  • 原文地址:https://www.cnblogs.com/zhengfa-af/p/8144990.html
Copyright © 2011-2022 走看看