【C语言】知识点总结(链表)

随时更

1. LinkList s = (LinkList)malloc(sizeof(LinkList));

LinkList :用户自己定义的链表,是一个结构体,比如:

typedef  struct   _LinkList { 
	int   id;                                  // 学号
	char  name[16];                    // 姓名
	struct   _LinkList  *  next;      // 指向下一个节点
	} LinkList ; 
	malloc(size) : 一个C语言库函数, 用来申请一块动态内存,  参数size是要申请的内存的大小, 返回所申请的内存的地址,该地址是一个void *指针。 该函数可以获取某数据类型在内存中所占的字节,所以 malloc( sizeof(LinkList) ) 就是申请一块大小为sizeof(LinkList)的内存,由于返回的是一个void *指针类型的地址,我们不知道该地址存放的是什么内容,不能访问它。所以需要在前面加(LinkList*)把它转换成LinkList类型的指针,这样程序就知道它存放的是什么内容了,就可以正确访问了。 总的来说, LinkList *s=(LinkList*)malloc(sizeof(LinkList));  就是申请一个LinkList *类型的数据s就跟你申请一个整形int  n 类似,换成动态申请可以这样 int * n = (int *)malloc(sizeof(int));  n就是一个指向整形的指针。 另外,可以把malloc()换成C++里的new :LinkList *s = new LinkList(); 如果一次要创建多个n个LinkList c语言版的可以这样:LinkList *s = (LinkList*)malloc(sizeof(LinkList) * n); C++版的可以这样:LinkList *s = new LinkList[ n ]; 

2. *L和 *&L

指针的引用而已,因CreateLinkList这个函数要修改链表,所以如果传一个指针类型的参数达不到修改目的的,所以用引用。

这两个有着一个共同点,都指向顺序表 L ,如果在函数中修改L 的内容,都影响到 L 的内容。

不同点则是,在函数中修改指针本身所指向的地址,L 不会发生改变,而 &L会发生改变。

首先,* &L是引用类型的指针,代表的是原指针,我们在函数中对指针的操作,都是直接对原指针的操作,无论是指针的内容,还是指针指向的地址,都会发生改

  • 10
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值