自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风清扬zld的博客

此刻正当修行时

  • 博客(12)
  • 收藏
  • 关注

原创 一个数是否为2的次幂的问题

判断一个数是否为2的次幂判断一个数是否2的次幂的方法:(n & n - 1) == 0因为如果一个数是2的次幂,则它对应的二进制数中只有一个1, 如果将这个数减1,则这个仅有的1会变成0,而它的低位则会变成1。所以,将这个数与减去1的数进行与运算后就会为0。unsigned int IsPowerOfTwo(unsigned int n){ if ((n & n-1) == 0) { return 1; } return 0;}计算大

2021-08-16 22:53:10 381

原创 悬空指针与野指针

悬空指针(dangling pointer)在C语言中,调用free§函数会释放p指向的内存块,但是不会改变p本身。如果忘记了p不再指向有效内存块,混乱可能随即出现。If a pointer still references the original memory after it has been freed, it is called a dangling pointer.char *p = malloc(4);...free(p);...strcpy(p, "abc"); // wr

2021-08-05 10:23:02 147

转载 【转载】__attribute__ ((__packed__))关键字

转载于: https://blog.csdn.net/u012308586/article/details/90751116不想要字节对齐的时候,有没有办法取消字节对齐?答案是可以,就是在结构体声明当中,加上__attribute__ ((packed))关键字,它可以做到让我们的结构体,按照紧凑排列的方式,占用内存。来段实际代码:#include <stdio.h>#include <iostream>using namespace std;struct test1

2021-08-01 22:50:47 217

原创 C语言弹性数组成员

假设需要定义一个结构,这个结构包括一个len字段和一个data字段。分别表示这个数据的长度和对应的数据。我们一般有以下几个方法这样做。引言方法一:定长数组第一种方法就是使用定长数组。即对数组设置一个足够大的缓冲区。如:struct vstring1 { int len; char data[N];};其中N是一个表示字符串最大长度的宏。考虑到字节对齐,则这个结构体的大小 大于等于:sizeof(int) + sizeof(char) * N;这样做既限制了我们使用字符串的

2021-08-01 22:31:36 649

原创 浮点数的范围和精度

IEEE标准提供了两种主要的浮点数格式: 单精度(32位)和双精度(64位)。分为三个部分:符号、指数和小数。指数部分决定了浮点数的范围。而小数部分的位数决定了精度。(见下图)单精度中,指数长度为8位,小数部分占23位。由于是有符号型,所以对应的指数范围是-128~128。所以单精度的范围是-2128到2128,约等于-3.40 * 10^38 至 3.40 * 10^38(或者写成 -3.40E38 ~ +3.40E38)。由于小数部分占23位,而2^23=8388608。对应的10进制是7位。所以

2021-07-25 15:52:10 15589 5

原创 C语言指针总结

文章目录0 前言1 指针的定义2 指针的运算3 指针与数组3.1 数组指针(指向数组的指针)3.2 指针数组4 指针与字符5 指针与结构体6 指针与const:常量指针与指针常量6.1 指针常量(Constant Pointers)6.2 常量指针(Pointer to Constants)6.3 指向常量的常量指针7 指针与函数7.1 函数指针7.2 回调函数8 二维指针8.1 命令行参数9 结束语0 前言指针是C语言最重要也是最难理解的部分,它在我们平时的工作中无处不在。有人说学会了指针,C语言也就

2021-07-10 21:35:37 1082

原创 C语言知识点总结

文章目录1. 大小端1.1 怎么检测设备是是按大端存储还是小端存储1.2 如何进行大小端的转换1.2.1 方法一:位操作1.2.2 方法二:使用 htonl, htons, ntohl, ntohs 等函数2 内联(inline)3 数据类型转换4. 字节对齐5 预处理器5.1 宏5.2 条件编译5.3 文件包含6 指针7 变量存储8 static 关键字9 Cache 存储器与二维数组10 C 语言常用的字符串函数总结11 __attribute__((format(printf, a, b))) 的用法

2021-07-10 21:31:59 360

原创 由一个小程序引发对 size_type类型的思考

今天第一天看“算法导论”,看了插入排序算法。想用c++练习一下,恰好最近也在复习动态数组以及vector,想分别用动态数组和vector实现上面的功能。首先,用动态数组实现没事,程序如下://用动态数组实现数组元素从小到大的排序#includeusing namespacestd;int main(){ int i,j,key; int arr; cou

2015-08-07 08:53:42 909 1

原创 c++primer第十章笔记

10.1  pair类型1:关联容器和顺序容器的本质差别在于:关联容器通过键(key)存储和读取元素,而顺序容器则通过元素在容器中的位置顺序存储和访问元素。2:map 的元素以键-值(key-value)对的形式组织:键用作元素在 map 中的索引,而值则表示所存储和读取的数据。3:pair类型在 utility 头文件中定义4:pairs类型提供的操作:pair  p1;  

2015-07-08 21:56:06 254

原创 第十章:单词出现次数程序

//通过建立map对象保存所读入的单词及其出现次数;//统计并输出所读入的单词出现的次数;//使用insert函数代替下标操作#include #include #include #include using namespace std;int main(){map wordCount;string word;//读入单词并统计其出现的次数cou

2015-07-08 21:49:53 533

原创 vector 类型输出的一个问题

刚学c++,运行以下程序:#include #include #include using namespacestd;int main(){       vectorint>ivec;       for(vectorint>::size_type ix=0;ix!=10;++ix)              ivec.push_back(ix);   

2015-07-07 22:24:53 894

原创 c++ primer第九章笔记

1:创建和初始化vector对象的方法:(1)分配和指定数目的元素,并对这些元素进行值初始化: vecor ivec(10);//ivec包含10个0值元素。(2)分配和指定数目的元素,并对这些元素进行值初始化为指定值:vecor ivec(10,1);//ivec包含10个1值元素。(3)将vector对象初始化为一段元素的副本:int ia[10]=[0,1,2,3,4,5,6,7

2015-07-07 21:11:31 349

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除