C语言进阶
文章平均质量分 87
1
码上心头
你想给别人一勺水,你首先要拥有一桶水。(博客短期不支持维护更新,最近一直在输入各种知识,相关学习记录都每日上传到gitee,后面会一次性大量更新,您可通过文末QQ名片找到我,并注明来意)
展开
-
【数组和进阶指针经典笔试题12道】这些题,满足你对数组和指针的所有幻想,come on !
指针这些题不会,C语言一定还要复习啊原创 2022-07-03 18:48:24 · 493 阅读 · 15 评论 -
【程序的编译和预处理】源文件到可执行程序到底经历了什么?
C语言中编译器是怎么把test变成机器可识别的指令的呐?一起6-1-1例子1:单纯只是研究辅助打印的信息,没有考虑参数的类型 6-1-2:考虑到传入的参数的类型 (这使得我想到函数重载) 6-2##7.宏和函数的对比(蓝色标明考虑角度)8.条件编译9.预处理指令#include9-1#include和#inlcude"stdio.h"的区别 9-2防止头文件被重复包含的两种方法:(写在头文件里的)方法1:方法2:.........原创 2022-06-25 07:14:55 · 565 阅读 · 14 评论 -
【升级版学生信息管理系统&员工工资信息管理系统】+文件操作+更多细节
目录0.题目要求:预览效果图 1.头文件和结构体类型定义 2.功能设计(菜单设计)3,。整体框架(主函数) 4.分函数实现4-0初始化并且将文件加载到程序 4-1 退出程序并将程序数据保存到文件中4-2录入学生信息 4-3 删除学生信息4-4 查询指定课程4-5 查询指定学生 4-6修改学生信息 4-7按照学号排序 4-8统计学生总数 4-9打印学生信息 4-10选择错误,重新选择 5.源代码 3,。整体框架(主函数) 4-1 退出程序并将程序数据保存到文件中原创 2022-06-20 22:48:21 · 621 阅读 · 19 评论 -
【C-文件操作】一文教你如何将代码的数据持久化
目录1.为什么使用文件?2.什么是文件?2-1文件的分类2-2文件名备注:以下文件操作函数的头文件都是stdio.h 3.文件的打开和关闭3-1文件的打开3-2 文件的关闭4.文件的顺序读写 4-1字符输出函数,文件的写入-----fputc编辑 4-2字符输入函数:文件的读出----fgetc 4-3文本行输出函数,文本的写入---fputs4-4文本行输入函数:文件的读出---fgets 4-5 格式化输出函数:文件的写入--->fprintf 4-6格式化输入函数:文件的读出--->fscanf编原创 2022-06-18 23:19:16 · 650 阅读 · 4 评论 -
【动态内存管理】malloc&calloc和realloc和笔试题和柔性数组
上述的空间开辟的方式有两个特点:但是如果我们所需要的空间大小在程序编译时并不确定,而是到程序运行起来的时候才能知道,那上述的空间开辟的方式就不适合了,动态内存管理就应运而生。当我们不手动释放动态内存开辟的空间:有了realloc函数,我们就可以已经malloc或calloc开辟好且对容量不满意的空间进行重新调整。(调整:调大调小均可)下面以扩容为例: 如果要缩小空间:则在原空间上截取相应长度的空间,并返回原的首地址(也就是等于p) 如果是扩大空间,分以下3种情况: 如果原空原创 2022-06-06 23:49:30 · 287 阅读 · 18 评论 -
【指针进阶三】实现C语言快排函数qsort&回调函数
排序结果: 排序结果: 举个例子: 2. 比较函数整型数组排序:(全部代码) 排序结果: 结构体数组排序:排序结果:原创 2022-06-04 00:50:31 · 493 阅读 · 21 评论 -
【进阶指针二】数组传参&指针传参&函数指针&函数指针数组&回调函数
【进阶指针一】字符指针&指针数组&数组指针https://blog.csdn.net/qq_64428099/article/details/1250114871.数组传参1-1一维数组传参正向:实参给定,猜猜看哪些形参该怎么写?测试1:注:这里没有要求打印,所以没有传元素个数sz测试2:void test2(int* arr2[10])//bingovoid test2(int* arr2[])//bingovoid test2(...原创 2022-05-30 16:07:53 · 857 阅读 · 28 评论 -
【进阶指针一】字符数组&数组指针&指针数组
1.初阶指针内容回顾1.内存被划分为小的内存单元,每个内存单元都有一个编号,这个内存编号就是所谓的地址,也被叫做指针(内存编号=地址=指针)。2.指针变量是一个变量,存放的是地址,地址能够唯一标识一块内存单元。3.指针变量大小是固定的4/8个字节(32/64位平台上)。4.指针变量类型决定了(1)指针在+-整数时的跳过多少个字节;(2)指针在解引用的时候访问的权权限。2.字符指针2-1 字符指针长什么样?int main(){ //代码一: char ch原创 2022-05-28 16:40:43 · 588 阅读 · 19 评论 -
【数据存储】浮点型数据在内存中的存储
1-0常见的浮点数两种表示形式:3.141E10常见的浮点数类型:float ,double(更多细节在float.h中定义,可使用软件everything里搜索)1-浮点数在内存中的存储先来看一道题引入#include<stdio.h>//浮点型数据在内存中的存储int main(){ int a = 9; printf("%d\n", a); float* pa = (float*)&a; printf("%f\n", *p原创 2022-05-25 16:55:18 · 647 阅读 · 17 评论 -
【双指针】早早开启双指针的大门
同向双指针 移动速度相同,一般同向移动 双向双指针 移动速度相同,一般相向移动 快慢双指针 移动速度不同 问题1:同向双指针:【力扣】1. 两数之和解题;使用同向双指针,两个指针首先都指向第一个元素,然后先固定第一个指针,第二个指针向后遍历,判断两个指针指向的数组元素之和是否等于给定的目标和值,如果不等,等第二个指针遍历完后,第一个指针再向后移动一位,第二个指针再从第一个指针的位置向后遍历整个数组,以此类推。(有点像选择排序的过程)时间复杂度:n..原创 2022-04-30 14:25:40 · 1025 阅读 · 12 评论 -
【C结构体】结构体都不会,学啥数据结构(进阶版)
智者不入爱河文章目录一.结构体1-1结构体类型的声明1-2结构体的自引用1-3结构体变量的定义和初始化1-4结构体内存对齐(求结构体所占字节数)1-5结构体传参1-6结构体实现位段(bit field)一.结构体数据经常会以组的形式存在,例如:用结构体描述一个复杂对象的基本信息–学生,这些值能够存储在一起,访问起来就会简单一些,但是由于这些值的类型互不相同,则无法使用数组存储,因此便有了结构体1-1结构体类型的声明用结构体描述一个复杂对象的基本.........原创 2022-04-15 15:34:34 · 1235 阅读 · 2 评论 -
【C数据存储】整型在内存中的存储(进阶版)
文章目录1.数据类型1-1内置类型1-1-1 内置类型的再细分1-2自定义类型2.数据的原码,2-1二进制和十六进制2-2原码,反码,补码2-3有符号和无符号的取值范围3.大小端字节序1.数据类型数据类型的两个作用:1.决定了使用这个类型定义变量是开辟空间的大小2.决定了我们看待内存空间的大小1-1内置类型charshortintlonglong longfloatdouble1-1-1 内置类型的再细分整型家族signed char/short/int/long有.原创 2022-04-12 22:44:45 · 1844 阅读 · 25 评论 -
【C字符串函数】字符串函数和内存操作函数模拟实现(进阶版)
不能听命于自己者,就要受命于他人。strlen求串长长度受限制的strcpy拷贝/赋值串strcat追加/连接串strcmp比较串strncpystrncatstrncmpstrstrstrtokstrerror字符分类函数字符转换memcpymemmovememcmpmemcat..............................原创 2022-04-12 13:26:21 · 1732 阅读 · 11 评论 -
【位运算】怕位运算?有我你何足畏惧
如果你是第一次了解位运算,或者对位运算还不熟,请移步操作对象:整数的补码位运算,位即是二进制位,而以二进制位方式存储的数据就是整数,而非浮点数且位运算的对象是补码.综合来看位运算的操作对象就是整数的补码下面只提供关键代码及适当分析文章目录求一个数的二进制位中1的个数方法1:除2模2法方法2:右移与1法方法3:按位与n-1法求一个数的二进制位中1的个数方法1:除2模2法while (n) { a[len++] = n % 2; n /= 2; }方法2:右移与1法原创 2022-04-08 23:55:00 · 968 阅读 · 12 评论 -
【C除法和取余】除法和负数取余你真的会了吗?
❤️细节决定成败❤️🧓作者:每天都要记得刷题(●’◡’●)🍉时间:2022/04/06本篇导语:不知道兄弟们在初学编程的时候是不是和我一样对编程除法存有疑惑,下面将会为大家解答这个疑惑.我们知道数学中的除法和编程中的除法是不一样的,编程中的除法是取整,那么今天我们就聊聊关于"取整"这件事.向0取整我们编程中最常见的取整方式就是向0取整画个数轴你就明白了printf("%d%d",-7/2,7/2);结果不出所料:通过这个:你就可以在编程中快速求出一个数的...原创 2022-04-07 21:35:03 · 4661 阅读 · 18 评论 -
【C两数交换】实现ab交换居然有三种方法?
❤️细节决定成败❤️🧓作者:每天都要记得刷题(●’◡’●)🍉🎈🥖🧓🚗⭐🍉时间:2022/04/06如果不引入第三个变量,你还有几种方法交换ab两个数?int a=10;int b=20;怎么交换a,b?1.引入临时变量temp(引入第三变量)简单,不过多赘述int temp=a;a=b;b=temp;2.a+b法(不引入第三变量)a=a+b;b=a-b;a=a-b;运行结果:3.a^b法(不引入第三变量)想详细了解异或^,请移步位运算a...原创 2022-04-06 15:42:52 · 2028 阅读 · 8 评论