自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何看待“遗忘“-适用于任何学科

昨天的你和今天的你 首先是不同时间的你 昨天你多赚了1分钱 今天你多赚了2分钱 昨天你多懂了一个知识点 今天你又多懂了2个知识点 昨天的你起点是1个知识点 但今天的你起点是2个知识点 所以 不一样吧 昨天那道题你学过了第一遍 今天又遇到这道题 你的基础就不是初识了 所以说 同一道题 第二次遇到 你的起点就是已经认识过 这次它换了个时间 就已经不是原本那道题了 所以需要重新认识记忆一遍 不要怕遗忘 你勇敢了吗 再记一遍就是了。你知道怎么把看似相同的对象看成完全不同的对象吗。

2023-05-30 14:32:04 63

原创 指针进阶5

10:函数指针就相当于我写的这篇文章 真正内容都是我学来的 通过我自己的理解写上去的 但是你通过看了我的文章 实质上学到了我学习的内容 而我就相当于一个指针 而我学习的内容 就是回调函数 懂了吧。1:回调函数就是一个函数的地址 传给另外一个函数当参数 另外一个参数通过地址调用了这个函数 这个函数就叫做回调函数。4:函数指针就是函数的地址 用了这个地址 就相当于访问了这个函数 就好像找到了你的地址 就相当于找打了你。int(*(*p3)[4])(int,int) = &p2 取出的是函数指针数组的地址。

2023-05-28 18:11:48 55

原创 指针进阶2

((*pa)+i)) 先看里面的小括号里面的 *pa 表示pa是一个地址类型变量 pa存的是整个数组的地址 也是这个数组第一个元素的地址 (*pa)表示的是这个数组第一个地址 + i 就是从第一个数组的地址 开始"前进" 前进到索引小10 也就是第9个后 得到的是数组里面所有元素的地址 最后外面那一层* 是把这些地址解开 得到地址里面的实际的值。int(*parr3[10])[5] parr3[10]是一个具有10个元素的数组 它的类型是* 指向的是一个数组的5个元素。for(i = 0;

2023-05-26 20:21:20 58 1

原创 指针进阶1

arr[i]的意思是遍历arr这个数组的i个元素 arr里面有3个元素 三个首元素地址 遍历了这三个地址指向的数组a b c + j 的意思是 加上j是遍历a b c 三个数组里的具体的数 然后统一解引用 解引用的意思是 找里面的实际的值 最后按照%d打印出来。2:int* arr[3] 这个意思是 arr是个数组 里面有3个元素 这3个元素是指针 类型是int* 这3个指针(地址)的类型是整形 也就是说 地址也分类型的 就像现实中的地址 地址也分街 路 这就是说 地址是分类型的。

2023-05-25 16:51:02 51 1

原创 浮点型与十进制的转换

(-1)^S * M * 2^E (S是符号位 M是尾数 尾数就是小数点后面的数 E是偏置值 偏置值就是阶码部分 就是2的几次方这个权重值) 单精度是E-127 双精度是E-1023。双精度 : 符号位s 占1位 阶符E 占11位 尾数M 占52位。单精度 : 符号位S 占1位 阶符E 占8位 尾数M 占23位。4:把E(+127以后的E)转化成2进制 M取小数点后面的尾数。2:写成 S M 2^E 的形式 M要再1.0<=M<2。2:10进制的E-127 求出E。1:先把E转换成10进制。

2023-05-25 14:15:07 1686 1

原创 浮点型的存储

5:把9.0存进*pFloat *pFloat指向的就是n 9这个数存完是0 10000010 001 00000000000000000000 注意 后面这些0必须写上 否则结果不一样。printf("*pFloat的值为: %f\n",*pFloat);printf("*pFloat的值为: %f\n",*pFloat);1: 1E10 是 1.0*10^10 1E5 是1.0*10^5。printf("num的值为: %d\n",n);printf("n的值为: %d\n",n);

2023-05-25 14:13:13 66

原创 初识函数&&数组

写函数看似多出来几行代码 但是函数可以重复使用 以后就直接调用就完了 省时省力 就像做零部件一样 它给我生产轮胎 它给我生产车架子 它给我生产发动机 它给我生产离合器 然后一拼就是我的一台车 函数就是这样的概念 函数是我们写代码时一个一个的小模块 函数有机的组合在一起 就是我们的代码。3:一组相同元素的集合 叫做数组。1:写一个求两个数和的函数。

2023-05-24 14:18:23 22

原创 数据的存储2

unsigned int这个类型 当你去定义i的时候 只是说站在i的角度 里面是无符号数 而i放在打印的时候 i又说的不算了 i只是一块内存区域 我们在打印的时候 如果写成%u内存里确实是无符号数 如果写成%d 即使i是无符号数 我也认为内存里存的是有符号数数字。步骤:i是个无符号类型 站在无符号的角度 它不可能有负数的 不可能有负数的话 最小值就是0 对于无符号数它最小值是0 那它恒大于等于0 这个判断条件 恰巧是i>=0 所以恒成立 恒成立这个代码就死循环了。第四行:a[0] = -1 - 0;

2023-05-24 14:13:23 24

原创 数据的存储1

/第一行从从右到左 先写出-1的原码 1000 0000 0000 0000 0000 0000 0000 0001 然后变成补码 1111 1111 1111 1111 1111 1111 1111 1111 再变成char类型 1111 1111。//第三行从从右到左 先写出-1的原码 1000 0000 0000 0000 0000 0000 0000 0001 再转成补码 1111 1111 1111 1111 1111 1111 1111 1111 再转成char类型。

2023-05-24 14:11:09 36

原创 数据的存储

23:整数为什么在计算机里存补码 而不是原码或者反码:CPU只有加法器 没有减法器 只能做加法 减法都是由加法模拟的1-1 其实算的是1+(-1) 如果1+(-1)用原码计算 结果就是-2了 就和数学不对了 但是用补码计算 就和数学计算一样的结果 =0 所以整数存储用补码 其次 用补码 符号位也能参与计算 还有 原码和补码互相转换 其算法是相同的 都是取反+1 这样就不需要额外的硬件电路了。26:存储在内存中是两个16进制位是一组 是1个字节。22:数据是怎么存储的 其实就是问存储的是什么码。

2023-05-24 14:10:17 24 1

原创 进制转换 c语言

十进制->二进制 :189 189除2商94余1 94除2商47余0 23除2 商11余1 11除2商5余1 5除以2商2余1 2除2 商1余0 1除2 不够除 商0借前一位商1 然后把所有余数 倒着从后往前写 得到1011101 就是最后转化的二进制数。二进制->十进制:10111101 分别展开 写成 1 0 1 1 1 1 0 1 从末尾开始 1*2^0+0*2^1+1*2 ^2+1*2^3+1*2^4+1*2^5+0*2^6+1*2^7 然后得 128+0+32+16+8+4+0+1 得到189。

2023-05-24 14:08:10 317 1

原创 debug版本和release版本的区别

14:release版本 就把arr[]内存地址 放在了i的下面 这样就不会出现越界访问i地址了 这就是release版本的自动优化的其中一点 无论arr[]在怎么越界 也不会碰触到i的内存地址了。12:debug版本在越界访问局部变量时就容易出现死循环 但是在release版本 就没有出现死循环 因为release版本对程序做了优化。13:arr[]数组的越界访问的前提是 arr[]数组的内存地址超过了i的内存地址。8:先定义的局部变量存储的内存地址 要高于 后定义的局部变量存储的内存地址。

2023-05-24 14:05:52 2083 1

空空如也

空空如也

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

TA关注的人

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