typedef struct LNode *p和typedef struct LNode笔记
关于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笔记相关推荐
- c/c++中typedef详解(此文对typedef用于结构体的定义说明得很清楚到位)
1. typedef 最简单使用 [c-sharp] view plain copy typedef long byte_4; // 给已知数据类型long起个新名字,叫byte_4 你可以在任何需要 ...
- c语言 typedef 函数,C语言的typedef
typedef是一种有趣的声明形式:它为一种类型引入新的名字,而不是为变量分配空间.在某些方面,typedef类似于宏文本替换--它并没有引入新的类型,而是为现有类型取个新名字,但它们之间存在一个关键 ...
- python 网络编程 struct解包时报错 struct.error: unpack requires a buffer of 4 bytes
报错信息 D:\Donta_tensorflow-yolov3\python\python.exe D:/10_gitee/network_programming/避障程序信号及图像接收端/20100 ...
- 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 ...
- linux系统中struct timeval结构体、struct timezone结构体以及gettimeofday函数
格林尼治时间.协调世界时 间.世界时间.日光节约时间以及时区等介绍: 格林尼治时间(Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台当地的标准时间,因为本初子午 ...
- []struct 直接赋值方法,匿名struct数组赋值,slice struct赋值
实际案例中经常碰见 //比如struct格式如下.内嵌[]struct如果我们想优雅赋值怎么实现呢?type List struct {ArtId intTitle stringUser []stru ...
- 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 ...
- python中pack函数,python中struct.pack()函數和struct.unpack()函數
python中的struct主要是用來處理C結構數據的,讀入時先轉換為Python的字符串類型,然后再轉換為Python的結構化類型,比如元組(tuple)啥的~.一般輸入的渠道來源於文件或者網絡的二 ...
- 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 ...
- c和c++中 typedef struct与struct,以及 typedef struct LNode *list
struct和typedef struct彻底明白了 typedef struct LNode *list和struct LNode有什么区别 typedef在C中叫做声明别名,就是说同种事物的另外一 ...
最新文章
- Java项目:电商书城平台系统设计和实现(java+springboot+mysql+spring+jsp)
- 特斯联再获20亿元融资,跻身AIoT独角兽,光大京东讯飞万达入股
- git schnnel failed to receive handshake, SSLTLS connection failed
- Java最后_Java最后一次总结
- 计算机的组成 —— 主板
- PHP发微信消息必须开网吗,关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题...
- 多元统计分析最短距离法_多元统计分析(11个常见的多变量分析方法)
- C语言文件IO实现图书馆管理系统,登录、注册、借书、还书和新增书籍
- 在Ubuntu22.04中安装微信、QQ
- python识别文字坐标_python识别图片上的文字并返回文字在图片中的坐标
- 三国志·魏书·满宠传
- 数字人民币真的来了 六年历程全回顾
- linux利用源码安装madplay
- gin embed打包静态资源文件
- 来客码到底是干什么的?
- C语言读取mp3文件的信息
- 安卓开发之EventBus使用
- 2021-11-20 任务一:健康评估功能的展示
- Xmanager power suit
- jQuery表单验证实例 / 包含用户名、密码、住址、邮箱验证