- 博客(8)
- 收藏
- 关注
原创 动态内存分配
没有就会另行开辟一块size大小的连续空间,将ptr指向的原有数据拷贝到新空间内,而后释放ptr所指内存区域(注意:原来指针是自动释放,不需要使用free),同时返回新分配的内存区域的首地址。指那些由编译器在需要的时候分配,不需要时自动清除的变量所在的储存区,如函数执行时,函数的形参以及函数内的局部变量分配在栈区,函数运行结束后,形参和局部变量去栈(自动释放)。(3)当内存不再 使用时,应使用free ()函数将内存块释放,否则会造成内存泄漏,小的程序可能影响不大,但对于中大型来说可能是致命的。
2023-07-14 17:24:48
199
4
原创 strcpy与strncpy和memcpy的不同
strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。1. 复制的内容不同。strcpy和strncpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。通常在复制字符串时用strcpy和strncpy,而需要复制其他类型数据时则一般用memcpy。strncpy在strcpy的基础上提供了控制想要复制字符串长度,但是strncpy追加结束标记'\0'。复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。strcpy提供了字符串的复制。
2023-07-11 15:50:36
215
5
原创 浮点数在内存中的存储
但是,我们 知道,科学计数法中的E是可以出 现负数的,所以IEEE 754规定,存入内存时E的真实值必须再加上一个中间数,对于8位的E,这个中间数 是127;比如,2^5的E是5,所以保存成32位浮点数时,必须保存成 5+127=132,即 10000100。那么,S=1,M=1.01,E=3。十进制的-0.75,写成二进制是0.11,相当于-1.1*2^(-1).S=1,M=1.1,E=-1。十进制的0.75,写成二进制是0.11,相当于1.1*2^(-1).S=0,M=1.1,E=-1。
2023-06-01 23:43:10
226
5
原创 关于求字符串长度,用自创函数代替strlen
size_t是确保返回值是一个无符号整形,因为字符串长度要么大于0要么等于0,不存在负数。assert是保证传过来的不是一个野指针,需要头文件assert.h。const保证传过来的值不会被改变。他是一个无符号整形,字符串的长度由终止字符‘\0‘确定:字符串的长度与字符串开头和终止字符之间的字符数一样长(不包括终止空字符本身)。首先我们要先了解strlen这个函数是什么。
2023-04-10 11:28:48
357
1
原创 冒泡排序(函数指针方式)
第一个for循环是表示有几轮排序,之所以比元素个数少一是因为元素个数趟最后一趟其实已经是排好序的了,无需排序。冒泡排序毕竟是一种效率低下的排序方法,在数据规模很小时,可以采用。flag用来优化,假如数组本身,或者在中间过程中已经排好序,用给予它的数值来跳出循环,还是继续循环。sz-1-x是表示每次循环后,末尾的元素其实已经达成最大(小),无需继续比较,减少运算过程。上面的冒泡排序写法基本上初学者都会的一种写法,下面我讲一种以函数指针的方式来写的冒泡排序。num表示待排序的元素个数。交换达成你要排列的顺序。
2023-04-06 12:13:31
903
1
原创 真正开始写的第一次
很早之前就认识并再注册好了csdn,但真正开始使用是在最近。以前没有学习的习惯,从初中到高中,或者说到大一,都没有改变一种以玩闹的心态学习,并不考虑以后会怎么样,可能是或者说,突然之间脑子灵光一现,或者说顿悟了,突然想为以后所考虑了,开始真正以认真的心态学习了学习了。从现在开始到大二,将c语言,数据结构,linux,要好好学完,为之后的c++等语言做准备。今天也可以说是打卡,也是一个见证,为以后所学习,为自己而学习。
2023-04-01 16:40:01
131
空空如也
头文件我不小心删了几个代码,所有代码运行不起来了
2023-03-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人