![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 76
J.Pei
努力成为CV嵌入式工程师的一天又一天
展开
-
C语言编译和预处理
_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的。语法:我们可以定义的符号实际上十分的多样化1000register//为 register这个关键字,创建一个简短的名字for;;//用更形象的符号来替换一种实现break;case//在写case语句的时候自动把 break写上。原创 2024-05-04 20:36:10 · 1018 阅读 · 0 评论 -
C语言文件操作
磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境 后缀为.exe)。文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件, 或者输出内容的文件。在以前所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。原创 2024-04-29 22:35:39 · 599 阅读 · 0 评论 -
C语言—柔性数组
C99 中,结构中的最后一个元素允许是未知大小的数组,这就叫做『柔性数组』成员。原创 2024-04-28 16:33:22 · 479 阅读 · 1 评论 -
动态内存管理
这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己 来决定。如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器。int main()//动态内存开辟return 1;//异常返回//使用int i = 0;原创 2024-04-28 16:32:17 · 1004 阅读 · 0 评论 -
结构体枚举、联合、位段
enum Day//星期Mon,Tues,Wed,Thur,Fri,Sat,Sunenum Sex//性别MALE,FEMALE,SECRETenum Color//颜色RED,GREEN,BLUE以上定义的enum Dayenum Sexenum Color都是枚举类型。{}中的内容是枚举类型的可能取值,也叫枚举常量。这些可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初值。enum Color//颜色RED=1,GREEN=2,原创 2024-04-28 16:28:09 · 302 阅读 · 0 评论 -
结构体与结构体内存对齐
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。原创 2024-04-28 16:26:21 · 365 阅读 · 0 评论 -
初识C语言—选择语句,循环,函数,操作符
/不完全初始化,剩余默认为零。printf("写代码:%d\n", line);printf("好offer\n");printf("好offer");printf("卖红薯\n")//是因为除号两端都是整数,执行的是整数除法。//很简单,整型变量没有小数,所以结果是。printf("好好学习");取模即为求余,这里不在演示,符号为%//如果a为真,做事。//如果a为假,做事。//sizeof是一个操作符。//这里也演示一下存字符串。原创 2024-03-05 11:37:52 · 643 阅读 · 0 评论 -
初识C语言—字符串、转义字符、注释
转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开头 013 \t 水平制表(HT) (跳到下一个TAB位置) 009 \v 垂直制表(VT) 011 \ 代表一个反斜线字符’’’ 092 ’ 代表一个单引号(撇号)字符 039 " 代表一个双引号字符 034?原创 2024-03-05 11:37:21 · 1055 阅读 · 0 评论 -
C语言分支和循环语句—while
空杯心态,把自己当成什么都不会的状态来学习,一定能收获的更多原创 2024-03-07 21:12:44 · 545 阅读 · 1 评论 -
初识C语言—数据类型
4 //为什么长整型没有整型长呢,C语言标准中 sizeof(long)>=sizeof(int),这里是等于的情况。//这里还是不能这么写,这里数组需要常量,常变量也会报错。//sizeof - 关键字 - 操作符 - 计算类型或者变量所占空间大小。//num为常变量,常属性即为不能改变的属性。局部变量的生命周期:进入局部范围,生命开始,出局部范围,生命结束。long long //更长的整形。//类型 变量名字 = 0 (初始化)MALE = 3,//赋初值。原创 2024-03-05 11:36:45 · 953 阅读 · 0 评论 -
初识C语言—C语言简介
C语言全面了解,全貌认识细致的学习,细枝末节C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。原创 2024-03-05 11:36:03 · 273 阅读 · 1 评论 -
C语言分支和循环语句—分支语句if、else、switch
那么从今天开始,我们将会认真详细的去学习C语言各部分内容原创 2024-03-07 18:58:53 · 1023 阅读 · 1 评论 -
初识C语言—结构体
生活中很多东西都是复杂对象就比如一本书,有书名,作者,编号,价钱C语言中提供了结构体来让我们描述这种复杂结构结构体可以让C语言创造新的类型出来//创建一个学生struct Stuint age;//创建一个书的类型int main()struct Stu s = { "张三",20,85.5 };//结构体的创建和初始化//结构体变量,成员变量return 0;运行结果张三 20 85.500000OK,让我们带上指针再试一次//创建一个学生。原创 2024-03-05 22:58:57 · 439 阅读 · 3 评论 -
初识C语言—操作符,常见关键字,#define 定义常量和宏
define是一个预处理指令define定义符号difine定义宏int mainreturn 0;结果为11为什么呢define定义宏是替换4*ADD(2,3)会被换成4X2+3,而不是4X(2+3)正确写法应该是这样的int mainreturn 0;运行结果为20后面会详细讲一下这个!!!原创 2024-03-05 19:40:33 · 477 阅读 · 0 评论 -
C语言分支和循环语句—do while
这个和while语句的区别就是,do while语句先执行,后判断,而while语句是先判断后执行。循环至少执行一次,使用的场景有限,所以不是经常使用。和前面的逻辑其实差不多,这里就不过多讲述了。接下来会写一些实例的讲解。while(表达式);原创 2024-03-08 14:03:23 · 227 阅读 · 1 评论 -
C语言分支和循环语句—for
前情提要我们重新来看这串代码int main()int i = 1;//初始化while(i<=10)//判断部分i = i+1;//调整部分return 0;上面三个部分任何一个部分发生变化就会影响程序的本身,那么,有没有一种简单的写法呢?for(表达式1;表达式2;表达式3)循环语句;表达式1为,用于初始化循环变量的。表达式2为条件,用于判断循环时候终止。表达式3为,用于循环条件的调整。实际的问题:使用for循环 在屏幕上打印1-10的数字。int main()原创 2024-03-08 13:31:07 · 573 阅读 · 1 评论 -
初识C语言—指针
非常重要!!!内存,是电脑上特别重要的存储器,计算机中所有程序的运行都是在内存中进行的为了有效地使用内存,就把内存分成一个个小的单元,每个单元的大小就是1字节为了能够有效的访问到内存的每个单元,就给内存进行了编号,这些编号被称为该内存属于空间,和现实生活中空间的使用非常相似,都取的有名字内存是怎么编号的一个内存单元是多大空间32位计算机 - 有32根地址线 - 物理线 - 通电 - 1/0我们把电信号转化成数字信息,就变成0和1的二进制序列......有2^32种情况这就是内存编号。原创 2024-03-05 22:57:52 · 453 阅读 · 0 评论 -
C语言数组—二维数组
从零开始深度理解二维数组,内附实战算法帮助理解数组作为函数参数所应该注意的问题,当数组以形参传到函数内部时,是无法计算元素个数的原创 2024-03-18 22:51:21 · 785 阅读 · 0 评论 -
初识C语言—初识C语言
C语言全面了解,全貌认识细致的学习,细枝末节原创 2024-03-09 13:42:57 · 488 阅读 · 1 评论 -
C语言实战—猜数字游戏(涉及循环和少部分函数内容)
对于前面一些内容的总结不妨跟着一起试试吧。原创 2024-03-09 15:41:08 · 217 阅读 · 0 评论 -
C语言分支和循环语句—goto
C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。例如:一次跳出两层或多层循环。多层循环这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。原创 2024-03-11 16:55:37 · 269 阅读 · 0 评论 -
C语言函数—关于静态库
如果我们成为了库的开发者,要卖给别人C语言库,该怎么办呢?原创 2024-03-13 22:28:00 · 1024 阅读 · 0 评论 -
操作符(C语言)—第二期
赋值操作符是一个很棒的操作符,他可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。关于sizeof其实我们之前已经见过了,可以求变量(类型)所占空间的大小。这些运算符都可以写成复合的效果。原创 2024-03-21 22:51:52 · 264 阅读 · 0 评论 -
C语言函数—自定义函数
自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。原创 2024-03-13 17:07:28 · 279 阅读 · 0 评论 -
C语言函数—递归
程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接 调用自身的 一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解, 递归策略 只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小写一个简单的递归函数看看什么效果int main()main();return 0;运行结果。原创 2024-03-14 23:08:52 · 477 阅读 · 0 评论 -
C语言函数—库函数
在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),www.cplusplus.com http://en.cppreference.com(英文版)看看我们最熟悉的stdio头文件所定义的函数,每一个函数都解释的很详细。,提供对过程的封装和细节的隐藏。但是你了解C语言中的函数吗?这就是C语言中的函数,a,b为输入,c 为输出。原创 2024-03-12 13:18:00 · 403 阅读 · 0 评论 -
操作符详解(C语言)—算数操作符,移位操作符,位操作符
一道小面试题:如何交换两个变量的值,不能使用第三个变量,即a=3,b=5,交换后a=5,b=3?原创 2024-03-20 18:18:44 · 869 阅读 · 0 评论 -
操作符详解(C语言)—最终章
到这里为止,C语言的操作符就全部介绍完了,马上就开启指针的学习!原创 2024-03-23 22:30:02 · 1277 阅读 · 0 评论 -
快速了解—IEEE754标准32位浮点数的转换
讲解IEEE754浮点数的转换方法,对浮点数的存储做了简单的介绍,快速掌握原创 2024-03-09 15:13:16 · 3284 阅读 · 0 评论 -
C语言函数—函数的嵌套调用、链式访问、声明和定义
告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数 声明决定不了。函数的声明一般出现在函数的使用之前。要满足先声明后使用。函数的声明一般要放在头文件中的。int b = 20;//函数声明一下 - 告知return 0;//函数的定义因为代码是从上往下运行的,所以把函数放在主函数的前面就不用声明了定义是一种更强有力的声明函数的定义是指函数的具体实现,交待函数的功能实现。project.h的内容。原创 2024-03-13 17:44:59 · 376 阅读 · 0 评论 -
操作符详解(C语言)—第三期
所以,表达式中各种长度可能小于int长度的整型值,都必须先转 换为int或unsigned int,然后才能送入CPU去执行运算。表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度 一般就是int的字节长度,同时也是CPU的通用寄存器的长度。实例2中的,c只要参与表达式运算,就会发生整形提升,表达式 +c ,就会发生提升,所以 sizeof(+c) 是4个字节.因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长 度。原创 2024-03-22 22:43:18 · 773 阅读 · 0 评论 -
C语言数组—一维数组
很简单,一组数就是数组我们已经完成了函数部分知识的学习,那么接下来,我们将会进入数组部分的学习数组部分的主要有那么话不多说,我们先来看一维数组。原创 2024-03-17 23:34:22 · 262 阅读 · 0 评论 -
C语言函数—递归理解和练习
相信看完这篇文章,你一定会对递归有一定的认识和理解,练习一定是掌握知识的最好渠道,一起来试试吧!原创 2024-03-15 22:05:49 · 716 阅读 · 0 评论 -
C语言实战—三子棋游戏
纯C语言实现,完整的小游戏开发思维和流程,相信跟着一起做一遍一定会对您的全局思维和项目开发思路有一定启发,同时也是对C语言编程能力的一次很好练习原创 2024-03-19 21:09:07 · 699 阅读 · 0 评论 -
C语言指针—野指针、指针运算、指针与数组
允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与 指向第一个元素之前的那个内存位置的指针进行比较。既然可以把数组名当成地址存放到一个指针中,我们使用指针来访问一个就成为可能。但是,数组就是数组,指针就是指针,二者不能混为一谈。那这样我们就可以很简单的计算出字符串长度。这个代码之前写过,但是是不是还能简化一下。**注意:**不是所有的指针都能相减。指向同一块空间的指针相减才会有意义。我们来看下面的式子的运算结果。:是一个变量,存放的是数组。:一组相同类型的元素集合。原创 2024-04-09 20:50:52 · 368 阅读 · 0 评论 -
C语言指针—指针和指针类型
那我们就可以这样理解:内存指针变量我们可以通过&(取地址操作符)取出变量的内存其实地址,把地址可以存放到一个变量中,这个 变量就是指针变量。原创 2024-04-08 18:28:48 · 510 阅读 · 0 评论 -
C语言—深度剖析函数指针,函数指针数组
我们先来看一段代码输出的是两个地址,这两个地址是 test 函数的地址。那我们的函数的地址要想保存起来,怎么保存?首先,能给存储地址,就要求pfun1或者pfun2是指针,那哪个是指针?答案是:pfun1可以存放。pfun1先和*结合,说明pfun1是指针,指针指向的是一个函数,指向的函数无参 数,返回值类型为void。原创 2024-04-17 22:37:54 · 321 阅读 · 0 评论 -
C语言指针—二级指针和指针数组
指针变量也是变量,是变量就有地址,那指针变量的地址存放在哪里?那么指针变量也是变量,那么pa在内存空间中应该也有地址pa的地址中存放了a的地址ppa中存放的是pa的地址那么我们该如何解引用呢那么我们再来详细解释一下注意不能理解为存放地址的地址。原创 2024-04-10 18:15:05 · 332 阅读 · 0 评论 -
C语言—字符指针,指针数组和数组指针详解
数组指针是指针?还是数组?答案是:指针。我们已经熟悉: 整形指针: int * pint;能够指向整形数据的指针。浮点型指针: float * pf;能够指向浮点型数据的指针。那数组指针应该是:能够指向数组的指针。下面代码哪个是数组指针?//p1, p2分别是什么?//解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。//这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。原创 2024-04-16 15:57:57 · 502 阅读 · 0 评论 -
C语言—深度剖析数据在内存中的存储
计算机存储的方式主要有两种,分别是定点数和浮点数那存储的内存就那么多,怎么样才能存储更多的位数呢?科学家们就很聪明,通过科学计数法来创造了浮点数的存储好,说了那么多,感兴趣了了解一下就行那么需要我们记住的是,定点数存储的范围小,但是精确;浮点数存储的范围更大,但是不精确。原创 2024-04-16 15:53:33 · 1199 阅读 · 0 评论