关于typedef struct LNode *p和typedef struct LNode的笔记

在MOOC的数据结构课的第二讲的代码里有句结构体的代码,如下:

typedef struct LNode *List;
struct LNode {ElementType Data[MAXSIZE];Position Last;
};

初始化线性表:

/* 初始化 */
List MakeEmpty()
{List L;L = (List)malloc(sizeof(struct LNode));L->Last = -1;return L;

上网搜了下那两句结构体的意思,"typedef struct LNode *List"是创建的结构体指针LNode,并用List来代替(简写)它;而“struct LNode”是创建结构体LNode,并没有为它弄个代替它的简写名字,所以在初始化线性表的代码里,要该结构体的大小就要写sizeof(struct LNode)。

用刚刚那两个结构体类似写个另外的结构体:

#include <stdio.h>
#include <stdlib.h>
typedef struct  LNode *p;//用p来给结构体LNode指针(struct LNode *)定义别名
typedef struct  LNode
{int a;char b;
};//结构体LNode(struct LNode)int main(){p p1;//声明一个类型为LNode结构体的指针变量p1p1=(p)malloc(sizeof(struct LNode));//p1指向动态分配内存的地址,该内存地址的大小为结构体LNode的大小,类型为结构体指针LNode*p1->a=101;p1->b='L';printf("%d,%c\n",p1->a,p1->b);return 0;
}

也可以给typedef struct LNode结构体弄个替代的名字List,这样sizeof(struct LNode)就变为sizeof(List),方便很多。

#include <stdio.h>
#include <stdlib.h>
typedef struct  LNode *p;//用p来给结构体LNode指针(struct LNode *)定义别名
typedef struct  LNode
{int a;char b;
}List;//用List来给结构体LNode(struct LNode)定义别名int main(){p p1;//声明一个类型为LNode结构体的指针变量p1p1=(p)malloc(sizeof(List));//p1指向动态分配内存的地址,该内存地址的大小为结构体LNode的大小,类型为结构体指针LNode*p1->a=101;p1->b='L';printf("%d,%c\n",p1->a,p1->b);return 0;
}

typedef struct LNode *p和typedef struct LNode笔记相关推荐

  1. c/c++中typedef详解(此文对typedef用于结构体的定义说明得很清楚到位)

    1. typedef 最简单使用 [c-sharp] view plain copy typedef long byte_4; // 给已知数据类型long起个新名字,叫byte_4 你可以在任何需要 ...

  2. c语言 typedef 函数,C语言的typedef

    typedef是一种有趣的声明形式:它为一种类型引入新的名字,而不是为变量分配空间.在某些方面,typedef类似于宏文本替换--它并没有引入新的类型,而是为现有类型取个新名字,但它们之间存在一个关键 ...

  3. python 网络编程 struct解包时报错 struct.error: unpack requires a buffer of 4 bytes

    报错信息 D:\Donta_tensorflow-yolov3\python\python.exe D:/10_gitee/network_programming/避障程序信号及图像接收端/20100 ...

  4. c struct 对齐_C中的struct大小| 填充,结构对齐

    c struct 对齐 What we know is that size of a struct is the sum of all the data members. Like for the f ...

  5. linux系统中struct timeval结构体、struct timezone结构体以及gettimeofday函数

    格林尼治时间.协调世界时 间.世界时间.日光节约时间以及时区等介绍: 格林尼治时间(Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台当地的标准时间,因为本初子午 ...

  6. []struct 直接赋值方法,匿名struct数组赋值,slice struct赋值

    实际案例中经常碰见 //比如struct格式如下.内嵌[]struct如果我们想优雅赋值怎么实现呢?type List struct {ArtId intTitle stringUser []stru ...

  7. C++报错解决:error: ‘int’ is not a class, struct, or union type typedef typename _Sequence::value_

    我在使用C++的时候,遇到了如下报错: -> % g++ test.cpp In file included from /usr/include/c++/7/queue:64:0,from te ...

  8. python中pack函数,python中struct.pack()函數和struct.unpack()函數

    python中的struct主要是用來處理C結構數據的,讀入時先轉換為Python的字符串類型,然后再轉換為Python的結構化類型,比如元組(tuple)啥的~.一般輸入的渠道來源於文件或者網絡的二 ...

  9. typedef int(init_fnc_t) (void) 和 typedef int(*init_fnc_t) (void)函数类型和函数指针的区别

    转载请注明原地址:http://blog.csdn.net/oyhb_1992/article/details/76975284 typedef int(init_fnc_t) (void)和 typ ...

  10. c和c++中 typedef struct与struct,以及 typedef struct LNode *list

    struct和typedef struct彻底明白了 typedef struct LNode *list和struct LNode有什么区别 typedef在C中叫做声明别名,就是说同种事物的另外一 ...

最新文章

  1. Java项目:电商书城平台系统设计和实现(java+springboot+mysql+spring+jsp)
  2. 特斯联再获20亿元融资,跻身AIoT独角兽,光大京东讯飞万达入股
  3. git schnnel failed to receive handshake, SSLTLS connection failed
  4. Java最后_Java最后一次总结
  5. 计算机的组成 —— 主板
  6. PHP发微信消息必须开网吗,关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题...
  7. 多元统计分析最短距离法_多元统计分析(11个常见的多变量分析方法)
  8. C语言文件IO实现图书馆管理系统,登录、注册、借书、还书和新增书籍
  9. 在Ubuntu22.04中安装微信、QQ
  10. python识别文字坐标_python识别图片上的文字并返回文字在图片中的坐标
  11. 三国志·魏书·满宠传
  12. 数字人民币真的来了 六年历程全回顾
  13. linux利用源码安装madplay
  14. gin embed打包静态资源文件
  15. 来客码到底是干什么的?
  16. C语言读取mp3文件的信息
  17. 安卓开发之EventBus使用
  18. 2021-11-20 任务一:健康评估功能的展示
  19. Xmanager power suit
  20. jQuery表单验证实例 / 包含用户名、密码、住址、邮箱验证

热门文章

  1. steam方舟服务器直连,方舟服务器在steam上等待发布 | 手游网游页游攻略大全
  2. 速锐得车载以太网的信息性能优势硬件及应用研究
  3. 空间索引之网格与四叉树
  4. 修图类APP原型设计分享– Hello Camera
  5. java毕业设计德云社票务系统Mybatis+系统+数据库+调试部署
  6. 【JS】利用JS给删除按钮添加提示框
  7. 小程序实现下拉刷新功能
  8. 东芝打印机共享怎么设置_东芝e-studio181打印机怎么设置网络打印机
  9. 前端数据可视化之使用 canvas、svg、zrender画图
  10. 服务器配置Python环境全过程