随笔分类 - C语言学习记录
摘要:##头文件的作用 一个C语言的程序一般都会包含多个.C文件以及多个.h头文件,假设我们的项目中有一个代码需要被多次使用,为了避免多次编写同一份代码,可以把一些公共的资源写在头文件中,然后在其他的.C文件中如果想要使用则只需要包含该头文件即可。 ##头文件的内容 头文件用来存放一些公共资源,各个.C文
阅读全文
摘要:##无值宏定义 定义宏的时候不指定一个值得时候就被称为无值宏定义,一般无值宏会使用在条件编译当中: #define __MAIN_H__ #define __TYPE_H__ 注意 对于无值宏来说我们只能判断它是否被定义,而无法判断他的值 ##保护宏 在一个工程中,为了防止某个头文件被多次包含,就会
阅读全文
摘要:##预处理 预处理是程序编译前的一个预先处理的动作,编译一共有4个步骤:C原文件 --> 预处理 --> 编译 --> 汇编 → 链接 --> 可执行文件。 预处理的工作主要是展开我们C源码中的#开头的语句,去掉了所有的注释,在严格的意义来说,这些语句它并不属于C语言的语法范畴。 以下是预处理的一些
阅读全文
摘要:##联合体基本概念 联合体也叫共同体,共用体,从外表看联合体与结构体长得很类似,结构体每一个成员都有自己独立的内存空间,但是联合体则共用同一片内存空间,也就是联合体同时只能允许一个变量存在。 特点: 1.联合体的内部是以堆叠的形式存在的; 2.整个联合体的尺寸取决于,成员中尺寸最大的那个成员; 3.
阅读全文
摘要:##结构体的概念 C语言中有很多的基础数据类型,除了这些我们可以通过一个结构体来把一部分基础数据类型整合为一个新的自定义类型。 struct 结构体的标签 { 成员1 ; 成员2 ; ..... }; // 最后用一个分号来表示结束 结构体的标签 : 用来区分各个不同类型的结构体 (也可以省略)。
阅读全文
摘要:###strstr 函数功能:在一字符串中查找指定的字符串) 头 文 件: #include <string.h> 定义函数: char *strstr(const char *haystack, const char * needle); 参数分析:haystack --> 需要搜查的字符串 (被
阅读全文
摘要:##基本概念 当一个的主函数太过庞大时,会将主函数按功能进行拆分,根据是否需要向外部提供接口,分为静态函数和普通函数, 普通的函数是跨文件可见的, 但是如果是静态函数的话他的可见范围会被缩小到本文件可见,外部文件是无法进行调用的。 static int max (int x, int y) { //
阅读全文
摘要:##虚拟内存 系统中的每一个进程运行的时候都会认为自己有连续和完整的的地址空间,这些地址空间被称作虚拟地址。数据和程序被存储在固态介质中,当系统系统需要某一段数据或程序时就会被搬运到内存当中,而不是将整个程序搬运到内存当中再运行起来,这样大大提高了程序的运行效率,和节约了内存空间。 如上图所示,每个
阅读全文
摘要:内存地址 字节: 是内存的单位byte, 一个字节8位 bits 地址: 系统为了方便访问内存,而对他们以一个字节为单位来进行逐一编号,称为内存地址 基地址 对于单字节的数据来说他的基地址就是他自己的地址本身。 对于多字节的数据来说他的基地址是他地址中地址值最小的那个, 称为该数据的基地址。 取址符
阅读全文
摘要:##数组的基本概念 数组就是一个可以一次性定义多个相同类型的变量,并可以放到一个连续的内存中去。 ##初始化 只有在定义的时候顺便赋值才叫初始化。 int a = 1024 ; int arr[5] = {1,2,3,4,5}; // 完全初始化 int arr1[] = {1,2,3,4,5,6,
阅读全文
摘要:算术运算符: + 加法 , 一目取整 - 减法, 一目 取负 -a * 乘法 / 除法 % 取模、求余 a%b a 和b 必须是整型 ++ 自加 1 a++ / ++a -- 自减 1 关系运算符 > 大于 判断a是否大于 b a > b < 小于 判断a是否大小于 b a > b >= 大于等于
阅读全文
摘要:##标准输出 屏幕和终端就是常用的输出设备,把数据输出到屏幕和终端被称为标准输出。 ##格式控制字符 %d %md %ld %u %lu:十进制整型输出 %md m 表示需要多少个字符空位,如果比实际的小则按实际输出,如果比实际大则用空格填补; %o 八进制整型输出 %x %X %#x %#X 十六
阅读全文