可变数组、链表

单片机 器件手册

SFR单片机特殊功能寄存器

单片机,RFID,嵌入式…

操作相当于让U的2和3bit(位)变为了1

对微处理器内部寄存器进行位操作,偏底层,需要查看对应芯片的数据手册

可变数组

意思就是,如果结构变量名字加* 就不能定义同名的本地变量了,不然会修改指针的值

可以定义两个,一个带星,一个不带,需要哪个用哪个,这就是数据结构里面链表经常用的,用来强调这是一个链表还是一个节点

实际上free只是将malloc分配的内存释放(交还),而指针变量依然存在

为防止指针悬空的情况下再次调用free把该片内存中其他的数据给杀了

所以要让指针指向NULL

free NULL是无害的

这种是拼接不了的,只能重新申请更大的空间,因为你原来申请的那片空间的后边已经被使用了

如果直接blocksize那么如果越了30个不就要调用两次了嘛,可是现在只要用一次就可以了。不用再判断了。

标准库函数 memcpy ,实现数组拷贝

(翻译)问题:每次膨胀时分配新内存是一种简单而干净的方法。但复制需要时间,并且在内存受限的情况下可能会失败。

链表linked-list

链表+hash+数签+分布式 +n.....= 区块链

让last指向head所指的结构体,当这个结构体的next!=null时,last就继续指向next所指的结构体,再判断该结构体的next,直到next=null

null是没有arrow的,是在讨论这个链表只有头节点的情况

尾插法

提示:这里我们要改的是链表的地址也就是head(看成一个值)。函数这边确实改了地址但是是*head的地址,我们要改的是head这个地址的地址才能改掉head的地址。

这里的如果使用全局变量head,如果程序有其他类型的链表节点,就不能再次使用这个head,必须另外定义

毕竟你写的库人家没那么熟悉 写错是有可能的 很多标准库函数都是要求传指针的同时返回指针

把指针的地址传到函数里面,对这个地址的修改,就是对传进来的这个指针进行修改

这里定义的结构体,其实也是用了二维指针的技巧,只不过用结构听就不会出现**,看起来不那么复杂

自己定义一个数据结构来代表整个list,给将来升级改进list带来无限可能,不再是一个悬在外面的head。 对于 工程化的程序 来说、需要告诉人家如何合理的安排这些东西

c语言结构体变量的地址是啥呢?

struct ss { int a[4]; char b[4]; } str; 这个str的地址是不是与数组a地址相同呢?

是相同的。
str是一个结构体的变量。类型为struct
ss。而a[4]是这个结构体的每一个成员,str的地址值与int
a[4]的地址值一样,但仅仅是地址值是一样的,而地址是有类型的,两者类型不一样,str的地址类型为sturct
ss
*,而成员a[4]的地址类型为int
*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值