题目
文章平均质量分 55
码农小张~
这个作者很懒,什么都没留下…
展开
-
模拟实现offsetof
3. 经过上面的分析之后,这段代码的逻辑就很简单了,通过 &((TYPE *)0)->MEMBER) 先取 TYPE 结构体类型成员的地址,强制转换成 size_t 类型后返回结构体类型成员的地址。1. (type *)0,可以理解为把 0 地址强制转换为 type 结构体类型的指针,此时 0 就成了 type 结构体的首地址,指向该结构体,既然为结构体指针,那么自然可以引用该结构体的成员,所以 (type *)0)->member 的整体意义就是引用 type 结构体的成员 member。原创 2023-12-27 12:53:21 · 358 阅读 · 1 评论 -
模拟实现atoi
atoi的规则是:跳过不可见字符,碰到负号或者数字开始转换,转换到非数字字符为止。原创 2023-12-27 11:12:50 · 356 阅读 · 1 评论 -
找单身狗(异或的使用)
同理,在数组中也可以使用异或的方式,将数组所有元素进行异或运算得到的结果.比如一个数组:[1,2,3,4,5,4,3,2,1],则该数组的异或和为:1^2^3^4^5^4^3^2^1.由于,相同的数字异或结果为0,0和任何数异或的结果为该数本身,当我们求出第一个数之后,可以对数组异或的结果和第一个单身狗进行异或,可以求出第二个单身狗。一个数组中只有一个数字是出现一次,其他所有数字都出现了两次。有数组的元素是:1,2,3,4,5,1,2,3,4,6。有数组的元素是:1,2,3,4,5,1,2,3,4。原创 2023-12-27 10:15:45 · 336 阅读 · 1 评论