C语言
文章平均质量分 55
C语言学习
sushang~
不积跬步,无以至千里;不积小流,无以成江海。
展开
-
C语言-程序环境和预处理
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义许多C 的编译器提供了一种能力,允许在命令行中定义符号。用于启动编译过程。原创 2024-05-04 23:22:27 · 559 阅读 · 0 评论 -
C语言-文件操作
每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者不必关心细节。在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文件。数据在内存中以二进制的形式存储,如果不加转换的输出到外存,就是。原创 2024-05-04 23:22:14 · 1074 阅读 · 0 评论 -
C语言-动态内存管理
C语言提供了一个动态内存开辟的函数//malloc申请到空间后直接返回这块空间的起始地址,不会初始化空间的内容这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器。原创 2024-05-04 16:24:30 · 995 阅读 · 0 评论 -
C语言-自定义类型:结构体,枚举,联合
有了结构体类型,那如何定义变量,其实很简单。int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化位段的声明和结构是类似的,有两个不同:1.位段的成员必须是 int、unsigned int 或signed int。2.位段的成员名后边有一个冒号和一个数字。原创 2024-05-04 16:23:34 · 1038 阅读 · 0 评论 -
C语言-字符串函数和内存函数
字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。参数指向的字符串必须要以 ‘\0’ 结束。注意函数的返回值为size_t,是无符号的( 易错 )while (*s!s++;return 0;= '\0')s++;原创 2024-05-04 16:22:18 · 781 阅读 · 0 评论 -
C语言-指针详解
如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。2.&数组名,这里的数组名表示整个数组,&数组名取出的是整个数组的地址。整型指针–指向整型变量的指针,存放整型变量的地址的指针变量。字符指针–指向字符变量的指针,存放字符变量的地址的指着变量。数组指针–指向数组的指针,存放的是数组的地址的指针变量。类型的指针可以接收任意类型的地址。原创 2024-05-03 00:32:22 · 544 阅读 · 0 评论 -
C语言-数据在内存中的存储
字节序:是以字节为单位,讨论存储顺序的小端字节序存储:把一个数据的低位字节的内容,存放在低地址处,把一个数据的高位字节的内容,存放在高地址处。大端字节序存储把一个数据的低位字节的内容,存放在高地址处,把一个数据的高位字节的内容,存放在低地址处。原创 2024-05-03 00:31:48 · 1 阅读 · 0 评论 -
C语言-调试技巧
Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。F5:启动调试,经常用来直接跳到下一个断点处。F9:创建断点和取消断点,断点的重要作用,可以在程序的任意位置设置断点,这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去F10:逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句F11。原创 2024-05-02 22:58:04 · 576 阅读 · 0 评论 -
C语言-分支和循环语句、函数、数组、操作符、指针、结构体
告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。函数的声明一般出现在函数的使用之前。要满足先声明后使用。函数的声明一般要放在头文件中的。函数的定义是指函数的具体实现,交待函数的功能实现。原创 2024-05-01 22:16:53 · 1251 阅读 · 0 评论 -
C语言-整体内容简单的认识
sizeof是一个操作符,是计算机类型/变量所占内存空间的大小scanf函数返回的是读取到数据的个数,如果scanf函数读取失败会返回EOF(EOF end of file 文件结束标志,#define EOF -1)多组输入:while(scanf(“%d”,&q)==1) 如果读取到一个数就持续输入,否则返回EOFscanf函数每次读取一个字符,跳过所有的空白字符,直到遇到第一个非空白字符的时候才开始读取。并且在读取到第一个空白字符后结束读取,将空白字符之后的所有字符都暂存在缓冲区中。原创 2024-05-01 22:16:23 · 1028 阅读 · 0 评论 -
进阶C语言第11课-malloc、calloc、realloc
【代码】进阶C语言第11课。原创 2023-08-31 14:59:18 · 22 阅读 · 0 评论 -
进阶C语言第10课-结构体、枚举、联合体
【代码】进阶C语言第10课。原创 2023-08-31 13:49:15 · 22 阅读 · 0 评论 -
C语言进阶第9课-memcpy、memmove、memcmp、memset
memcpy是内存拷贝,拷贝字符串、拷贝整型数组、拷贝结构体数据函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。这个函数在遇到’\0’的时候并不会停下来。如果source和destination有任何的重叠,复制的结果都是未定义的。原创 2023-08-30 15:24:12 · 30 阅读 · 0 评论 -
进阶C语言第8课-strcp、strcat、strcmp、strstr等
1.源字符串必须以‘\0’结束2.会将源字符串中的‘\0’拷贝到目标空间3.目标空间必须足够大,以确保能存放源字符串4.目标 空间必须可变5.学会模拟实现。原创 2023-08-30 14:00:51 · 25 阅读 · 0 评论 -
进阶C语言第7课-sizeof和strlen的区分
【代码】进阶C语言第7课。原创 2023-08-29 16:34:59 · 19 阅读 · 0 评论 -
C语言进阶第6课-函数指针实现回调函数
函数指针数组:数组的每个元素是函数指针类型。原创 2023-08-29 14:14:02 · 25 阅读 · 0 评论 -
C语言进阶第5课-指针数组、数组指针、函数指针
输出str1 and str2 are not same。原创 2023-08-25 11:12:34 · 23 阅读 · 0 评论 -
C语言进阶第4课-打印菱形、水仙花数
通过上半部分控制菱形的输出,输入7打印包括上半部分7行和下半部分6行,一共13行的整个菱形。原创 2023-08-24 18:00:35 · 25 阅读 · 0 评论 -
C语言进阶第2_3课-浮点数的存储
根据国际标准IEEE 754,任意一个二进制浮点数V可以表示成下面的形式1.(-1)^SM2^E2.(-1)^S表示符号位,当S=0,V为正数,当S=1,V为负数3.M表示有效数字,大于等于1,小于24.2^E表示指数位对于32位浮点数,最高的1位是符号位S,接着的8位是指数E,剩下的23位为有效数字对于64位浮点数,最高的1位是符号位S,接着的11位是指数E,剩下的52位为有效数字。原创 2023-08-22 21:42:21 · 16 阅读 · 0 评论 -
C语言进阶第1课-数据在内存中的存储
小端存储:把一个数据的低位字节的内容,存放在低地址处,把一个数据的高位字节的内容,存放在高地址处。大端存储:把一个数据的低位字节的内容,存放在高地址处,把一个数据的高位字节的内容,存放在低地址处。原创 2023-08-22 20:06:14 · 22 阅读 · 0 评论 -
初识C语言第13课-递归实现n的k次方
例如,调用DigitSum(1792),则应该返回1+7+2+9,它的和是19。实现:奖参数字符串中的字符方向排列,不是逆序打印。要求,不能使用C函数库中的字符串操作函数。输入:1792 输出:19。原创 2023-08-20 21:39:26 · 25 阅读 · 0 评论 -
初识C语言第12课-100到200之间的素数、九九乘法表
例如 9输出9*9的乘法口诀表。例如 9输出9*9的乘法口诀表。原创 2023-08-20 21:31:12 · 24 阅读 · 1 评论 -
初识C语言第20课-最小公倍数和逆序字符串
例如 i like beijing.逆序后beijing. like i。原创 2023-08-20 20:03:37 · 33 阅读 · 1 评论 -
初识C语言第17课-结构体访问
【代码】初识C语言第17课。原创 2023-08-20 19:12:04 · 30 阅读 · 1 评论 -
初识C语言第16课-指针
1.指针是内存中最小单元的编号,也就是地址2.平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量指针大小在32位平台上是4个字节,在64位平台上是8个字节。原创 2023-08-20 15:26:12 · 26 阅读 · 1 评论 -
初识C语言第11课-数组
1.sizeof(数组名),数组名单独放在sizeof()内部,这里的数组名表示整个数组,计算的是整个数组的大小。2.&数组名,这里的数组名也表示整个数组,这里取出的是整个数组的地址。除此之外所有遇到的数组名都表示数组首元素的地址。数组名通常情况下就是数组首元素的地址。原创 2023-08-18 15:51:17 · 33 阅读 · 1 评论 -
初识C语言第19课-调试技巧下
常见的coding技巧1.使用assert2尽量使用const3.养成良好的编码风格4.添加必要的注释5.避免编码的陷阱。原创 2023-08-20 13:42:57 · 34 阅读 · 1 评论 -
初识C语言18课-调试技巧上
调试的基本步骤1.发现程序错误的存在2.以隔离、消除等方式对错误进行定位3.确定错误产生的原因4.提出纠正错误的解决办法5.对程序错误予以改正,重新测试Debug通常称为调试版本Release称为发布版本F5启动调试F9创建断点和取消断电F10逐过程F11逐语句CTRL+F5开始执行不调试。原创 2023-08-20 10:40:39 · 41 阅读 · 1 评论 -
初识C语言第15课-数组的练习
实现reverse()函数完成数组元素的逆置。实现函数init()初始化数组为全0。实现print()打印数组的每个元素。要求:自己涉及以上函数的参数,返回值。原创 2023-08-20 10:12:12 · 44 阅读 · 1 评论 -
初识C语言第14课-位操作符
1.原码2.反码3.补码正整数的原码、反码、补码是相同的负整数的原码、反码、补码是要计算的(原码取反+1)原创 2023-08-19 20:23:14 · 25 阅读 · 0 评论 -
初识C语言第10课-函数的嵌套调用与递归
1.存在限制条件,当满足这个限制条件的时候,递归便不再继续。2.每次递归调用之后越来越接近这个限制条件。递归的主要思考方式在于,把大事化小。程序调用自身的变成技巧称为递归。原创 2023-08-18 12:37:50 · 20 阅读 · 1 评论 -
初识C语言第9课-函数的分类
1.库函数常用的库函数(1)IO函数(2)字符串操作函数(3)字符操作函数(4)内存操作函数(5)时间/日期函数(6)数学函数(7)其他库函数2.自定义函数。原创 2023-08-18 10:42:15 · 24 阅读 · 1 评论 -
初识C语言第8课-猜数字游戏
1.电脑会随机生成一个数2.猜数字a:猜到了,提醒猜大了,继续猜b:猜小了,提醒猜小了,继续猜c:猜对了,恭喜你,猜对了,结束游戏3.玩完一把不过瘾可以继续玩,不用退出程序。原创 2023-08-17 20:25:09 · 21 阅读 · 1 评论 -
初识C语言第七课-循环语句
语法:for(表达式1;表达式2;表达式3)循环语句。原创 2023-08-17 17:10:46 · 27 阅读 · 1 评论 -
初识C语言第六课-分支语句
C语言可分为一下五类:1.表达式语句2.函数调用语句3.控制语句4.符合语句5.空语句。原创 2023-08-16 21:57:42 · 32 阅读 · 1 评论 -
初识C语言第五课-指针与结构体
输入3 4 5时输出的是 Ordinary triangle!原创 2023-08-16 20:52:12 · 25 阅读 · 1 评论 -
初识C语言第四课-操作符与常用关键字
/宏//函数int main()int a = 10;int b = 20;return 0;原创 2023-08-15 21:46:06 · 30 阅读 · 1 评论 -
初始C语言第三课-函数与操作符
输入3和5通过调用函数输出的结果为8。原创 2023-08-15 20:44:17 · 15 阅读 · 0 评论 -
初识C语言第二课-常量与变量及循环语句
scanfprintf库函数-C语言的编译器提供的现成的函数,直接可以使用scanf的作用时输入数据,数据从键盘读取到内存中printf的作用是输出数据,数据从内存打印到屏幕上使用的时候要包含头文件stdio.h%c-字符%d-整型%s-字符串%f-float%lf-double%p-地址的打印。原创 2023-08-15 12:51:40 · 30 阅读 · 1 评论 -
初识C语言第一课-数据类型
写第一个C语言代码,在屏幕上打印:hello world代码一般是从main函数开始写。C语言中main函数是程序的入口,程序是从main函数的第一行开始执行的可以看到程序是从main函数开始执行的,没执行一行打印一个heheC语言的main函数有且仅有一个上面的程序执行结果发生错误,说明main函数有且仅有一个有一些古老的C语言main函数写法这种写法是非常古老-不推荐这种写法也有最后这种写法以后再去研究printf函数打印字符串的用法在屏幕上输出了hehe和呵呵。原创 2023-08-15 10:47:02 · 21 阅读 · 1 评论