用c语言实现数据结构需要的C基础

下面是我觉得需要的C语言基础,大家缺什么就可以点下面链接,也可以直接阅读下面的内容。
C程序的组成单位——函数
C语言类型重定义
复杂数据类型和结构体
动态内存管理函数
C语言地址操作与指针基础

这里通过具体的代码来理解需要的C语言基础

typedef int ElemType; 

typedef struct LNode
{
    ElemType *elem;
    int length;
    int listsize;
}*List,LNode;

void InitList(List L)
{
    L->elem=(List)malloc(sizeof(LNode)*100);
    if (!L->elem)
        exit(1);
    L->length=0;
    L->listsize=100;
}

int main()
{
	List L_1;
	LNode L_2;
	return 0;
}

第一部分:类型重定义

typedef int ElemType; 

typedef(type define) 即类型重定义
类型重定义不定义新的类型,只是给原有的类型一个新的名字
具体参考下面这篇文章
C语言类型重定义

第二部分:对结构体使用类型重定义

typedef struct LNode  //如果有typedef 则这里的LNode可以省略
{
    ElemType *elem;  
    int length;
    int listsize;
}*List,LNode;

定义一个结构体,并使用类型重定义typedef给其另一个名字。
这样的好处是见名知意方便书写
上述的typedef使用等价于

struct LNode  //如果有typedef 则这里的LNode可以省略
{
    ElemType *elem;  
    int length;
    int listsize;
};
typedef struct LNode *List;
typedef struct LNode LNode;

参考内容
复杂数据类型和结构体

第三部分:malloc函数

void InitList(List L)
{
    L->elem=(List)malloc(sizeof(LNode)*100);
    if (!L->elem)
        exit(1);
    L->length=0;
    L->listsize=100;
}

L->elem=(List)malloc(sizeof(LNode)*100);的运行顺序
①计算sizeof(LNode)100),然后传入函数malloc
②开始运行malloc函数,结束后返回void * 类型的指针
③将函数返回的void
类型的指针强制转换要使用的类型
④将已转换的类型赋给L->elem
注:
malloc前面的(List)是强制类型转换
如果malloc调用失败则返回NULL即空指针
NULL是宏名,其值为0

具体参考
动态内存管理函数

第四部分:声明结构体变量和其指针

int main()
{
	List L_1;
	LNode L_2;
	return 0;
}

List L_1;
L_1 为指针类型,用于存储结构体的地址,系统只为其分配了存储地址的空间,大小和系统的寻址能力有关。
通常是4个字节或八个字节
LNode L_2;
L_2 为结构体类型,用于存储结构的内容,系统已为其分配了存储内容空间。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值