zoukankan      html  css  js  c++  java
  • struct 和typedef struct的区别

    和int char一样struct也是一种数据类型,也可以声明变量--结构变量。
    定义结构体变量的一般格式为:

    struct 结构名
    {
        类型 变量名;
        类型 变量名;
        ...
    }结构变量;
    

    另一种常用的格式为:

    typedef struct 结构名
    {
        类型 变量名;
        类型 变量名;
        ...
    }结构别名;
    

    结构名是结构的标识符,它不是结构变量名,可加可不加。

    Struct 在C语言中有下面四种用法:

    1.

    struct
    {
        int num;
        char name;
    }Stu;
    

    Stu是这个结构体的结构变量,不能再声明其他结构变量,
    只能直接访问
    Stu.num;

    2.

    struct Student
    {
        int num;
        char name;
    }Stu;
    

    必须使用struct Student声明struct变量
    struct Student Stu1;
    Stu1.num;
    而Stu已经被声明成struct变量可直接访问
    Stu.num;

    3.

    typedef struct
    {
        int num;
        char name;
    }Stu;
    

    Stu相当于 struct{}的别名,可以声明struct变量。
    Stu Stu1;
    Stu1.num;

    4.

    typedef struct Student
    {
        int num;
        char name;
    }Stu;
    

    struct Student Stu1;
    Stu1.num;
    有typedef后,Stu相当于struct Struct{}的别名,可以声明struct变量
    Stu St2;
    St2.num;

    在c++中很简单,直接

    struct Student
    {
        int num;
        char name;
    }Stu;
    

    申明变量时可直接 Student Stu1;
    而Stu还是struct变量,可直接访问Stu.num;
    在c++中使用typedef赋别名也和C中一样,只不过它可直接使用结构名,命名结构变量。

  • 相关阅读:
    剑指Offer 13.机器人的运动范围
    笔试题目-无向图是否全连通
    面试题目-最小代价的寻路问题
    京东一面问题
    剑指Offer 07.重建二叉树
    剑指Offer 12.矩阵中的路径
    剑指Offer 10-I.斐波那契数列
    剑指Offer 06.从尾到头打印链表
    剑指Offer 05.替换空格
    剑指Offer 04.二维数组中的查找
  • 原文地址:https://www.cnblogs.com/Nice-Boy/p/6580226.html
Copyright © 2011-2022 走看看