- 博客(8)
- 收藏
- 关注
原创 浮点数在内存中的存储
IEEE754标准定义了浮点数的表示方法,包括单精度和双精度两种格式。单精度浮点数由32位组成,其中1位表示符号位,8位表示指数位,23位表示尾数位。双精度浮点数由64位组成,其中1位表示符号位,11位表示指数位,52位表示尾数位。在IEEE754标准中,约定小数点左边隐含有一位,通常这位数是1,所以实际尾数长度要小于规定的位数。例如,十进制中 5.0 转换成二进制 -101.0,相当于-1.01*2^2,s=1,M=1.01,E=2。
2024-06-23 13:58:13
128
原创 动态内存管理常见错误
这段代码是运行不出来的,首先,没有释放内存造成内存泄漏,其次Getmemory函数是进行值传递,而非地址,p变量出了函数后就销毁,那么str还是空指针,因此错误。所以我们要传地址,地址的地址就要用二级指针来,修改如下。
2024-06-04 20:02:49
210
1
原创 数据在内存中的存储
strlen统计的是'\0'前长度 -1 -2 -3 -4 .......-127 -128 127 126 .....3 2 1 0,即0前的长度128+127=255。1代表负数:补码取反加一即原码 11111111 :-1 11111110:-2 ...... 10000001:-127 规定10000000为-128。0代表正数:补码即原码 00000000 - 0 00000001 -1 ..... 01111111 - 127。signed char 的范围是-128 -127、
2024-05-14 20:36:58
122
2
原创 memmove函数模拟实现
如果dest(目标)在src(所移动的)前面,采取从前向后的方式移动,反之采取从后向前的方式。memmove和memcpy的差别就是memmove函数处理的源内存块和⽬标内存块是可以重叠的。如果源空间和⽬标空间出现重叠,就得使⽤memmove函数处理。
2024-05-11 21:19:52
187
1
原创 memcpy模拟实现(void *的使用)
1 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。2 assert断言防止dest和src为空指针,要包含头文件assert.h。
2024-05-09 14:21:07
90
原创 如何用C语言写扫雷小游戏
1 我们用 1来代表含雷,0代表不含雷,制作9*9的扫雷游戏。2 根据排雷游戏规则,如果没有排到雷,需要显示其周围含雷个数,于是我们可以用另外一个数组来显示。(因为0,1可代表含雷的个数也可代表含不含雷)3 在统计含雷个数时,如果坐标是(9,9),数组会越界,所以我们用11行11列的数组。4如何统计含雷个数,由于数组含*等字符,我们用字符数组,'1'想表示数字1可用'1'-'0'来表示,周围8个数组元素相加就是含雷个数。
2024-04-24 15:47:56
145
2
原创 关于数组指针与字符指针的一些理解
int i = 0;int j = 0;for (i = 0;i < r;j < c;二维数组名代表二维数组首元素地址,其中二位数组每一行都是一个元素,所以二维数组名代表第一行地址,于是我们也可以用数组指针来当形参int i = 0;int j = 0;for (i = 0;i < r;j < c;
2024-03-16 16:55:19
480
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人