C语言之struct 和 typedef struct

    科技2024-08-09  28

    struct

    用法

    struct tag { member-list member-list member-list ... } variable-list ;

    实例

    struct Books { int book_id; char *bookname; }

    说明: (1)上面声明了一个结构的“变量类型”,我们可以通过上面去实例化一些变量 如下:

    int main(){ struct Books a; a.book_id = 1; a.bookname = "Old Man and Sea"; printf(a.bookname); return 0; }

    (2) 可以在建立struct 的时候,就实例化一些变量对象

    struct Books { int book_id; char *bookname; }booka,bookb,*bookc; int main(){ struct Books a; a.book_id = 1; a.bookname = "Old Man and Sea"; booka.bookname = "hello world"; booka.bookname = 2; bookb.bookname = "price and prejudce"; bookb.bookname = 3; (*bookc).bookname = "test pointer"; (*bookc).book_id = 4; printf(a.bookname); return 0; }

    typedef

    定义与用法

    作用是用来取别名使用的

    typedef unsigned char BYTE;

    此时后面都可以使用BYTE 来代替 unsigned char 进行直接定义别的变量了

    typedef 与 struct

    单链表的定义

    typedef struct Node { int data; struct Node* pNext; } NODE,*pNODE;

    说明: (1) 下面的代码 表示一个声明了一个结构体

    struct Node { int data; struct Node* pNext; }

    (2) typedef 表示将这个东西另外起一个名字叫做NODE

    (3) *pNODE 表示 起了一个别名,叫做pNode ,那么就表示pNODE 定义的变量就是指针类型的 (4) 结构体内部,定义了一个变量和一个指向自己的指针

    链表创建的几个点:

    pNode a; (创建一个指向节点的指针)

    NODE a; (创建 一个真实的节点)

    pNODE *L; (创建一个指向节点的指针的指针)

    pNODE *L; // 声明的是一个指向地址(是指向节点的地址)的地址 头指针 //NODE a; // 声明的是一个实体的对象 pNODE a,b; // 声明的是一个地址 b = (pNODE)malloc(sizeof(NODE)); a = (pNODE)malloc(sizeof(NODE)); b->data = 11; b->pNext = NULL; a->data = 10; a->pNext = b; L = &a; printf("anssss:%d\r\n", (*L)->data); printf("anssss:%d\r\n", a->data); printf("anssss:%d\r\n", a->pNext->data); printf("anssss:%d\r\n", b->data);
    Processed: 0.010, SQL: 8