zoukankan      html  css  js  c++  java
  • 关于struct和typedef struct

    1 struct  TelPhone{
    2 
    3            char Name[20];
    4 
    5            char  TeiNumber[20];
    6 };

    为例 这里先定义了一个 TelPhone的结构体。

    加入需要为TelPhone定义一个别名:

    其语法为

    typedef  TelPhone  TP;

    而实际上TelPhone为一个结构体,

    这样写比较好

    tepedef struck TelPhone TP;

    因为我们的TelPhone是我们自定义的类型,所以我们了解,但是别人不一定会了解,如果我们再加上struck这个关键字,别人就会知道这是一个自定义的类型,也不会造成费解。

    所以最终演化成了

    如下写法

    typedef struct TelPhone{
                 char    Name[20];
                 char    TelNumber[20];
    }TP;

    此时,我们可以定义

    可以

    struct TelPhone  tp1;

    也可以,直接

    TP  tp2;

    如果我们不需要struct TelPhone,也可以直接

    typedef struct {
                 char    Name[20];
                 char    TelNumber[20];
    }TP;

    这样只能通过TP来定义结构体了。

    在c++中的区别

     

    如果我们定义了

    1 struct  TelPhone{
    2            char Name[20];
    3           char  TeiNumber[20];
    4  };

    那么可以直接视同TelPhone来定义结构体变量

    TelPhone tp1;

    c++中

        struct   Student   
        {   
        int   a;   
        }stu1;//stu1是一个变量  

    stu1就表示一个Student类型的结构体变量

    而:

    typedef   struct   Student2     
    {   
        int   a;   
    }stu2;//stu2是一个结构体类型=struct Student  

    和c语言中没有差别。

  • 相关阅读:
    第七章 下
    第七章 上
    第六章 下
    第六章 上
    第五章 下
    linux 系统通过安装包安装mysql 8 步骤(非MariaDB)
    热烈庆祝博客换了新皮肤
    异常处理
    栈计算逆波兰表达式
    栈计算中缀表达式
  • 原文地址:https://www.cnblogs.com/jiudianren/p/5635780.html
Copyright © 2011-2022 走看看