zoukankan      html  css  js  c++  java
  • typedef struct xxx xxx与struct xxx区别 && “->”和“.”访问结构体变量

    1、
    struct //是C中的结构体的关键词。
    如:
    stuct node{
    int a;
    .....
    } a;
    node 相当于结构体的类型,关键是
    其实在C中stuct node 才相当于一个数据类型,如int ,所以在才会给初学者的带来困难,如在定一个变量时,
    要用 struct node xxx,而不是 node xxx 这就是关键。
    a是struct node类型结构体的变量
    注意:在c++中定义结构体类型变量可以不用使用struct,例如可以node xxx

    2、
    而 typedef // 是自定义数据类型。
    如:typedef int zengshu // 把一个数据类型用一个直观的数据类型名代替,增加程序的可移植性。
    而且
    typedef struct node {
    }A;
    则是把 struct node 看做一个数据类型(见关键处),不同的是这个结构体类型的定义也放在后面。 而A则是那
    个直观的数据类型名,引用的时候更加方便。
     
    代码:
    1 #include<stdio.h>
    2 typedef int INT;
    3 int main()
    4 {
    5     INT a=1;
    6     int b=1;
    7     printf("%d %d
    ",a,b);
    8 }

    3、

     1 typedef struct Trie* TrieNode;
     2 
     3 struct Trie
     4 {
     5     int val;
     6     TrieNode Next[2];
     7     Trie()
     8     {
     9         val = 0;
    10         memset(Next,NULL,sizeof(Next));
    11     }
    12 };
    像上面这一段代码,它就把* TrieNode当作struct Trie类型结构体
    如果你用TrieNode定义一个变量就相当于定义了一个struct Trie结构体类型的指针变量(注意:是指针变量)
     
    “->”是一个整体,它是用于指向结构体子数据的指针,用来取子数据。
    换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,
    那么我们要用指针取出结构体中的数据,就要用到“->”。
     
    但是如果你定义了一个struct Trie结构体类型变量,那么你访问它的成员就要通过“.”(这个是小数点)
     
  • 相关阅读:
    .hpp文件
    最小高度的BST
    检查图中的有向路径
    c++ 对象内存布局详解
    链表求差
    offer--链表反转和从尾到头打印链表
    平衡二叉树的判断
    java 抽象类和接口
    原型模式--prototype
    装饰模式decorator
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/11985209.html
Copyright © 2011-2022 走看看