
C语言[done]
文章平均质量分 58
C语言
graceyun
低头赶路,敬事如仪,自知其心,其路则明~
展开
-
C语言初阶——1C语法概览
批量创建一组相同类型的变量:C语言中要求数组中的变量是相同类型~类似于Java、C++、Go这样的语言和C语言一致(称这类为静态类型,一个变量在运行过程中类型是固定的,不能变)类似于Python、PHP、JavaScript、的语言不要求数组中是相同类型。(称这类为动态类型,一个变量在运行过程中类型可以改变)原创 2023-04-15 17:18:54 · 103 阅读 · 0 评论 -
C语言初阶——2分支语句和循环语句
三种语法结构:第一种:if(表达式)语句;第二种:if(表达式)语句1;else语句2;第三种://多分支if(表达式1)语句1;else if(表达式2)语句2;else语句3;原创 2023-04-19 13:58:09 · 105 阅读 · 0 评论 -
C语言初阶——3函数
如果库函数能干所有的事情,那还要程序员干什么?所有更加重要的是自定义函数。自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。函数组成:statement;//语句项 } ret_type 返回类型fun_name 函数名para1 函数参数eg:写一个函数,找出两个整数中的最大值告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,无关紧要。函数的声明一般出现在函数的使用之前。原创 2023-04-24 13:46:36 · 86 阅读 · 0 评论 -
C语言初阶——4数组
二维数组本质上也是一维数组,只不过每个元素又是一个一维数组,所谓的数组,可以理解成一种特殊的类型,int arr[4];数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。冒泡排序的核心思路,比较两个相邻元素的大小,看看是不是符合排序的要求.(例如,要求进行升序排序,就看前一个元素是不是比后一个元素小)如果不符合排序要求,就进行交换~不管是几维数组,本质都是一维数组. 操作/语法都是和一维数组一 样的。本质上也是一个-维数组, 只不过每个元素又是一个二 维数组~~只要连成一条线就赢了。原创 2023-07-07 08:56:17 · 130 阅读 · 0 评论 -
C语言初阶——5操作符
一个16进制数是4个比特位,两个16进制数是8个比特位(一个字节),四个16进制是2个字节 也就是一个short。表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度。因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长。把int强转为short的时候,前面高位的两个字节,就直接舍去不要了。把short强转为int的时候,前面高位两个字节,填充的都是符号位;一般就是int的字节长度,同时也是CPU的通用寄存器的长度。原创 2024-05-24 08:59:33 · 1196 阅读 · 0 评论 -
C语言初阶——6指针
(2^ 32Byte = 2^ 32/1024KB = 2 ^ 32/1024/1024MB = 2 ^ 32/1024/1024/1024GB = 4GB) 4G的空闲进行编址。指针是指编程语言中的一个对象,利用地址,它的值指向存在电脑存储器中的另一个值。指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?概念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)1、 指针是用来存放地址的,地址是唯一标示一块地址空间的。指针数组是指针还是数组?指针类型的意义是什么?原创 2023-07-06 14:29:36 · 61 阅读 · 0 评论 -
C语言初阶——7结构体
声明类型的同时定义变量p1int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化结构体嵌套初始化int data;//结构体嵌套初始化//结构体嵌套初始化。原创 2024-07-18 13:44:39 · 252 阅读 · 0 评论 -
C语言初阶——8实用调试技巧
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。原创 2025-01-11 21:16:00 · 836 阅读 · 0 评论 -
C语言进阶——1数据的存储
C语言初阶中我们已经学习了C语言的内置类型,以及他们所占存储空间的大小。char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数使用这个类型开辟内存空间的大小(大小决定了使用范围)。如何看待内存空间的视角。原创 2025-01-11 21:15:20 · 1147 阅读 · 0 评论 -
C语言进阶——2指针(一)
数组指针是指针?还是数组?——是指针字符指针——存放字符地址的指针—指向字符的指针char *整型指针——存放整型地址的指针—指向整型的指针 int *浮点型的指针——存放浮点型地址的指针—指向浮点型的指针 float* double*数组指针——存放数组地址的指针——指向数组的指针分析:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。原创 2025-01-14 19:44:55 · 1799 阅读 · 0 评论 -
C语言进阶——2指针(二)
arr 表示的是整个二维数组的地址,数组的地址+1,跳过整个数组的大小,所以 &arr+1 相对于 &arr 的差值是40。arr表示的是第一行元素的地址,所以arr+1相对于arr的差值是5(一行5个元素)在写代码时,有时候需要把【数组】或者【指针】传给函数,那函数的参数该如何设计呢?当一个函数的参数部分为一级指针的时候,函数能接收什么参数?二维数组传参,函数形参的设计只能省略第一个[ ]的数字。&arr和arr,虽然值是一样的,但是意义不一样。当函数的参数为二级指针的时候,可以接收什么参数?原创 2025-01-15 19:18:43 · 1064 阅读 · 0 评论 -
C语言进阶——2指针(三)
从函数指针数组去改写指向函数指针数组的指针,不容易出错。int main()//函数指针数组//pf和[]先结合,说明pf是数组,数组的内容是 int(*)(int int)类型的函数指针//指向函数指针数组的指针//ppf先和*结合,说明是指针,把(*ppf)取掉,就是我们指针指向的函数指针数组 int(*)[5](int,int)return 0;分析指向函数指针数组的指针的一个很重要的用途就是回调函数,下面介绍什么是回调函数定义:回调函数就是一个通过函数指针调用的函数。原创 2025-01-16 19:52:14 · 921 阅读 · 0 评论 -
C语言进阶——3字符函数和内存函数介绍(1)
【代码】C语言进阶——3字符函数和字符串函数(1)原创 2025-01-21 20:24:18 · 1556 阅读 · 0 评论 -
C语言进阶——3字符函数和内存函数介绍(2)
C语言的库函数在运行的时候,如果发生错误,就会将错误码存在一个变量中,这个变量是:errno。它会返回找到相同字符串的地址,所以可以直接打印。所以就有了strerror()这个函数。错误码是一些数字:1 2 3 4 5。我们这里使用了一个fopen()函数。我们需要讲错误码翻译成错误信息。原创 2025-01-24 20:54:04 · 1739 阅读 · 0 评论 -
C语言进阶——4自定义类型(1)—结构体
声明类型的同时定义变量p1/定义结构体变量p2/定义变量的时候同时赋值代码1int x;int y;}p1;//声明类型的同时定义变量p1 这里定义的变量都是全局变量//初始化:定义变量的同时赋初值。int main()//定义结构体变量p2 这里定义的是局部变量return 0;原创 2025-02-13 20:34:52 · 1215 阅读 · 0 评论 -
C语言进阶——4自定义类型(2)— 位段/枚举/联合体
位段的声明和结构是类似的,有两个不同:1.位段的成员必须是 int、unsigned int 或signed int。2.位段的成员名后边有一个冒号和一个数字。示例struct Aint _a:2;int _b:5;int _c:10;int _d:30;A就是一个位段类型。分析验证enum Day//星期Mon,Tues,Wed,Thur,Fri,Sat,Sunenum Sex//性别MALE,FEMALE,SECRETenum Color//颜色。原创 2025-02-13 20:35:13 · 906 阅读 · 0 评论 -
C语言进阶——5动态内存管理(1)
前置小知识内存中存在栈区,堆区,静态区,栈区:存放局部变量,函数形参等堆区:进行动态内存管理,malloc/calloc/realloc/free都是在这块内存进行开辟空间与释放静态区:存放静态变量和全局变量等。原创 2025-02-15 19:11:30 · 798 阅读 · 0 评论 -
C语言进阶——5动态内存管理(2)
来自于书籍《高质量C/C++编程》原创 2025-02-17 19:17:23 · 1195 阅读 · 0 评论 -
C语言进阶——6-C语言文件操作
磁盘上的文件是文件。但是在程序设计中,从文件功能的角度来分类,我们一般谈的文件有两种:程序文件、数据文件。原创 2025-02-19 19:43:43 · 1093 阅读 · 0 评论 -
C语言进阶——7程序的编译(预处理操作)+链接
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的。int main()//VS2022不支持return 0;语法:1000register//为 register这个关键字,创建一个简短的名字for;;//用更形象的符号来替换一种实现break;case。原创 2025-02-21 20:00:28 · 1233 阅读 · 0 评论 -
VS2022如何修改我们新建工程打开新建文件中,默认输入我们的main函数和宏定义
进入属性页面,单击【安全】,然后【编辑】,然后选择【组或用户名】最下面那个,【Users(XXX)】的,勾选【完全控制】,就会把这列全部打对钩,点击【应用】,然后点击【确定】这个时候重新用记事本打开就可以进行修改保存了。原创 2025-01-10 21:06:56 · 313 阅读 · 0 评论 -
C语言刷题学习知识点1_20240219-
sizeof 是C语言中的一个操作符,就和+ - * 、/ 一样,它是用来计算变量或者类型所占空间大小的~计算结果的单位是字节,1字节是8个bit位。==很开心,这是自己独立完成的代码,虽热很low,但是真的很开心!开始考虑使用循环了。scanf 是为了获取你键盘输入的字符,使用主要有两点需要注意。getchar() 获取一个字符或者输入一个字符。1.需要一个 变量来存储我们输入的数据。eg:scanf如何实现两个输入。求两个数的最小公约数。原创 2024-05-24 09:01:05 · 362 阅读 · 0 评论 -
C语言进阶习题【4】——模拟实现atoi
模拟实现atoi,库函数:< cstdlib >将字符串转换为整数解析C字符串str,将其内容解释为一个整数,返回为int类型的值。该函数首先根据需要丢弃任意数量的空白字符(如isspace),直到找到第一个非空白字符。然后,从此字符开始采用可选的首字母加号或减号,后跟尽可能多的 base-10 数字,并将它们解释为数值。字符串可以在形成整数的字符之后包含其他字符,这些字符被忽略,对该函数的行为没有影响。原创 2025-02-25 19:10:41 · 260 阅读 · 0 评论 -
C语言进阶习题【3】(7预处理)——写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。
写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。原创 2025-02-22 16:03:55 · 138 阅读 · 0 评论 -
C语言进阶习题【3】(7预处理)——写一个宏计算结构体变量相对于首地址的偏移
写一个宏,计算结构体中某变量相对于首地址的偏移,并给出说明。原创 2025-02-22 16:03:46 · 418 阅读 · 0 评论 -
C语言进阶习题【3】(5 枚举)——找单身狗2进阶版本
本小节是在之前版本上的一个进阶解决思路一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。原创 2025-02-24 17:59:06 · 455 阅读 · 0 评论 -
C语言进阶习题【3】(5 枚举)——找单身狗2
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。例如:有数组的元素是:1,2,3,4,5,1,2,3,4,6只有5和6只出现1次,要找出5和6.原创 2025-02-15 19:11:54 · 231 阅读 · 0 评论 -
C语言进阶习题【2】(4结构体进阶)——通讯录的实现3
在动态版本的基础上,对于通讯录的新增了存储到文件中,可以从文件中打开我们存储的通信录功能。新增函数:saveContatc()和loadContact()原创 2025-02-21 20:00:43 · 189 阅读 · 0 评论 -
C语言进阶习题【2】(4结构体进阶)——通讯录的实现2
在静态版本的基础上,对于通讯录的创建和初始化进行了修改,还修改了add函数,新增了增容函数,和销毁函数。原创 2025-02-17 19:17:30 · 301 阅读 · 0 评论 -
C语言进阶习题【2】(4结构体进阶)——通讯录的实现1
主要功能有:显示通讯录信息,增加通讯录中人的信息,删除通讯录中人的信息,查找通信录中信息,修改通讯录中信息,给通讯录中信息排序(按名字),退出通讯录。main函数在test.c中。比较简单,主要是使用了结构体初始化,结构体传参等结构体新学的知识,和一些循环。我们把通讯录实现部分放在contact.c和contact.h中,把通讯录的测试代码放到test.c中。原创 2025-02-14 20:17:07 · 300 阅读 · 0 评论 -
C语言进阶习题【1】指针和数组(4)——指针笔试题4
分析代码结果。原创 2025-01-21 20:23:52 · 330 阅读 · 0 评论 -
C语言进阶习题【1】指针和数组(4)——指针笔试题3
指针笔试题3原创 2025-01-20 22:08:48 · 713 阅读 · 0 评论 -
C语言进阶习题【1】指针和数组(4)——指针笔试题2
指针笔试题2原创 2025-01-20 22:08:26 · 380 阅读 · 0 评论 -
C语言进阶习题【1】指针和数组(4)——指针笔试题1
代码分析程序结果。原创 2025-01-19 20:30:36 · 137 阅读 · 0 评论 -
C语言进阶习题【1】指针和数组(4)——二维指针
二维数组名和&二维数组名二维数组名,指的是第一行的地址,+1会跳过第一行&二维数组名,指的是整个数组地址+1会跳过整个数组。原创 2025-01-19 18:17:05 · 336 阅读 · 0 评论 -
C语言进阶习题【1】指针和数组(3)——一维指针指向字符数组首元素地址
这里有个随机值是6,验证了下是凑巧。原创 2025-01-18 22:38:21 · 287 阅读 · 0 评论 -
C语言进阶习题【1】指针和数组(2)——字符数组
sizeof只关注占用内存空间的大小,单位是字节,不关心内存中存放的是什么sizeof是操作符strlen是求字符串长度的,统计的是\0之前出现的字符个数,一定要找到\0才算结束,所以可能存在越界访问的strlen是库函数。原创 2025-01-18 20:33:51 · 387 阅读 · 0 评论 -
C语言进阶习题【1】指针和数组(1)——一维数组
a指的是整个数组,值也是数组首元素地址,但是+1会跳过整个数组,a指的是数组首元素的地址+1会跳过第一个元素,到下一个元素,原创 2025-01-17 21:53:42 · 359 阅读 · 0 评论 -
C语言初阶习题【31】字符串旋转结果
写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1=AABCD和s2=BCDAA,返回1给定s1=abcd和s2=ACBD,返回0.AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAAAABCD右旋一个字符得到DAABC。原创 2025-01-16 21:49:22 · 404 阅读 · 0 评论 -
C语言初阶习题【30】字符串左旋
实现一个函数,可以左旋字符串中的k个字符。例如:ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB。原创 2025-01-15 19:19:01 · 331 阅读 · 0 评论