- 博客(7)
- 收藏
- 关注
原创 C语言文件操作
C语言程序运行起来没有默认打开某一个文件,所以在操作文件的时候需要fopen打开文件,拥有针对这个文件对应相关的流,有了这个流,才可以给大家输入数据,从里面读取数据或者向里面去写数据等等相关的操作。上面介绍的fgetc, fputc, fgets, fputs, fscanf, fprintf函数在文件里输入的都是文本信息(看得懂),此外介绍二进制信息。因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者文件操作结束的时候关闭文件。输出数据可以在屏幕,文件,网盘......这些称为输出设备。
2025-01-30 21:41:07
1494
原创 函数栈帧的创建和销毁
给函数开辟栈帧后,把push的形参存到寄存器里,通过add相加,再把寄存器的值mov到为函数开辟栈帧的一块空间里,把这块空间的值存到寄存器上带出来。pop的是main函数的ebp,可以见上图。ebp+8这个位置存的就是10,ebp+0ch这个位置存的是20,也就是说经过add操作,eax存的就是30。:把ebp-8这个地址存放的值,放到ecx里面去,edp-8是a的位置,a就是10,把10放到ecx。把ebp-14h这个位置地址的值,放到eax里面去,ebp-14h就是刚才b的位置,里面存的20。
2025-01-20 01:51:05
1775
原创 C语言通讯录✨
注释:虽然我们看到结构体Contact中,data是一个类型PeoInfo结构体大小的结构体指针,但是*(data + i) 和data[i]是一个意思。输入要删除的人的名字,(注意&)个元素,大小为存放人的信息的结构体PeoInfo, 赋值给一个指针ptr,这个指针的类型是。注意:使用realloc要用新的指针来接收,因为它有可能开辟一个新的空间。,在初始化的部分我们加上加载文件的操作,让玩家使用通讯录能拿到上次的信息。这里注意sz下标的范围,i+1是容易越界的,画图思考(不要越界)
2024-12-23 17:53:06
1840
原创 C语言求整数二进制1的个数 图解
思路:将m和n异或^一下,相同为0,相异为1;表达式有多少个1,就有多少位不同;n&(n - 1),与了几次表达式,就有几个1,直到表达式为0。n & (n - 1) 与完之后,唯一一个1没有了,表达式就是0,这个数就是2的K次方。num & (num - 1) 其实还有一些难以想到的用处~思考能不能优化,如果是求-1内存中1的个数必须循环32次。while (n), n为0时,0为假退出循环。2的k次方数字,2进制的表示中只有一个1。但是这个方法有什么缺点?今天的讲解到此结束~
2024-12-01 18:19:59
358
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人