![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
文章平均质量分 88
C语言基础知识
muyierfly
这个作者很懒,什么都没留下…
展开
-
01.初识C语言1
C语言是一门通用计算机编程语言原创 2022-10-31 22:13:35 · 460 阅读 · 0 评论 -
02.初识C语言2
C语言基础知识2原创 2022-11-02 16:58:21 · 185 阅读 · 0 评论 -
03.初识C语言3
z指针与结构体原创 2022-11-03 20:21:28 · 84 阅读 · 0 评论 -
04.分支语句和循环语句
C语句可分为以下五类:1. 表达式语句(1+1=2即就是表达式)2. 函数调用语句3. 控制语句4. 复合语句5. 空语句控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类:1. 条件判断语句也叫分支语句:if语句、switch语句;2. 循环执行语句:do while语句、while语句、for语句;原创 2022-11-03 23:08:44 · 155 阅读 · 0 评论 -
05.函数
自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。{statement;//语句项}ret_type 返回类型fun_name 函数名para1 函数参数1.写一个函数可以找出两个整数中的最大值。//get_max函数的设计{(x):(y);}2.写一个函数可以交换两个整形变量的内容。//实现成函数,但是不能完成任务{tmp = x;x = y。原创 2022-11-05 23:46:37 · 181 阅读 · 0 评论 -
06.数组
数组是一组相同类型元素的集合。数组的创建方式://type_t 是指数组的元素类型//const_n 是一个常量表达式,用来指定数组的大小VS2019不支持C99的变长数组;VSC不支持初始化不可以数组创建的实例://代码1//代码2//数组时候可以正常创建?//代码3注:数组创建,在C99标准之前, [] 中要给一个常量才可以,不能使用变量。在C99标准支持了变长数 组的概念,数组的大小可以使用变量指定,但是数组不能初始化。原创 2022-11-12 16:20:50 · 118 阅读 · 0 评论 -
07.操作符
逻辑反操作- 负值+ 正值& 取地址sizeof 操作数的类型长度(以字节为单位)~ 对一个数的二进制按位取反-- 前置、后置--++ 前置、后置++* 间接访问操作符(解引用操作符)(类型) 强制类型转换1)!逻辑反操作int main(){//C语言中0表示假,非0表示真。原创 2022-11-12 16:14:07 · 103 阅读 · 0 评论 -
08.初级指针
指针理解的2个要点:1. 指针是内存中一个最小单元的编号,也就是地址2. 平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量总结:指针就是地址,口语中说的指针通常指的是指针变量。内存---电脑上的存储设备&a---对a取地址,取出a的地址a是一个整型变量,整型变量占用四个字节,每个字节都有地址&a取出的是第一个字节的地址(较小的地址)32位机器,32根地址线,32比特,32/8=4字节,指针变量大小是4个字节。原创 2022-11-19 16:56:56 · 396 阅读 · 0 评论 -
09.结构体
有了结构体类型,那如何定义变量,其实很简单。{int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。原创 2022-11-22 12:25:33 · 77 阅读 · 0 评论 -
10.实用调试技巧
调试原创 2022-11-26 17:25:22 · 821 阅读 · 0 评论 -
01.数据的存储
1)基本的内置类型:char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数2)类型的意义:使用这个类型开辟内存空间的大小(大小决定了使用范围)。如何看待内存空间的视角。。原创 2023-01-14 19:19:21 · 732 阅读 · 0 评论 -
02.指针的进阶
在指针的类型中我们知道有一种指针类型为字符指针 char*;char * p---const char * p(因为常量字符串不能被修改)//本质是把字符串 hello bit. 首字符的地址放到了pstr中const char* p = "abcdef"//首字符的地址传向p//常量字符串不能被修改---改:const char * p="abc"(因为左侧为常量字符不能被修改)//str1这些都是首地址。原创 2023-01-16 22:57:59 · 385 阅读 · 0 评论 -
03.字符函数和字符串函数
✳字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0' )。✳参数指向的字符串必须要以 '\0' 结束。('\0'表示字符串结束,它在ASCII中的值为0(数值0,非字符‘0’))✳注意函数的返回值为size_t,是无符号的( 易错 )✳学会strlen函数的模拟实现//strlen函数模拟递归assert(str!= NULL);if (*str!//指针-指针。原创 2023-01-18 22:30:29 · 1027 阅读 · 0 评论 -
04.自定义类型:结构体
有了结构体类型,那如何定义变量,其实很简单int x;int y;char ch;float d;int main()//乱序初始化return 0;int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化。原创 2023-01-19 13:16:55 · 1413 阅读 · 0 评论 -
05.自定义类型:枚举&联合
以上定义的 enum Day , enum Sex , enum Color 都是枚举类型。2. 和#define定义的标识符比较枚举有类型检查,更加严谨。我们可以使用 #define 定义常量,为什么非要使用枚举?不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。{}中的内容是枚举类型的可能取值,也叫 枚举常量。//枚举可以调试,#define不可以调试。,当然在定义的时候也可以赋初值。//枚举变量的大小取值为4。这些可能取值都是有值的,1.1 枚举类型的定义。2.1 联合类型的定义。原创 2023-01-19 21:51:46 · 1055 阅读 · 0 评论 -
06.动态内存管理
所以,如果我们把结构体的内存以及其成员要的内存一次性分配好了,并返回给用户一个结构体指针,用户做一次free就可以把所有的内存也给释放掉。1.str传给p的时候,p是str的临时拷贝,有自己独立的空间,当GetMemory函数内部申请了空间后,地址放在p中是,str依然是NULL。包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。//当是情况2 的时候,原有空间之后没有足够多的空间时,扩展的方法是:在堆空间上另找一个合适大小。原创 2023-01-20 22:44:03 · 1277 阅读 · 0 评论 -
07.C语言文件操作
1. 使用文件的原因数据的持久化2. 文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。2.1 程序文件2.2 数据文件本章讨论的是数据文件。在以前各章所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。其实有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使用,这里处理的就是磁盘上文件。2.3 文件名一个文件要有一个唯一的文件标识,以便用户识别和引用。原创 2023-01-21 00:45:15 · 1278 阅读 · 0 评论 -
08.程序环境和预处理
(假定某个程序中声明了一个某个长度的数组,如果机器内存有限,我们需要一个很小的数组,但是另外一个机器内存大些,我们需要一个数组能够大些。宏参数的求值是在所有周围表达式的上下文环境里,除非加上括号,否则邻近操作符的优先级可能会产生不可预料的后果,所以建议宏在书写的时候多些括号。函数的参数是与类型有关的,如果参数的类型不同,就需要不同的函数,即使他们执行的任务是相同的。当宏参数在宏的定义中出现超过一次的时候,如果参数带有副作用,那么你在使用这个宏的时候就可能。除了非常小的宏之外,程序的长度会大幅度增长。原创 2023-02-09 19:01:43 · 450 阅读 · 0 评论