摘要: 使用关键字define 定义就叫宏。例如: #define PI 3.14 (宏定义) 在预处理阶段,使用3.14替换所有出现 PI 的位置(宏展开) 注意:宏后面不要加分号 建议宏尽量用大写字母,用于和普通变量分开 宏的作用范围是从宏定义处开始到当前文件结束都有效(#undef可以结束宏) 宏没有 阅读全文
posted @ 2023-02-27 18:44 牙齿凤 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 头文件包含 在预处理阶段,将头文件的内容原封不动的包含在目的文件中 例如:#include<head.h> (建议 < > 中包含的是系统头文件) < > 符号代表从系统指定目录寻找head.h头文件 例如:#include "head.h" (建议 " " 中包含的是自定义头文件) " " 符号代 阅读全文
posted @ 2023-02-27 18:18 牙齿凤 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 编译过程:预处理、编译、汇编、链接 预处理:包括宏替换、删除注释、头文件包含、条件编译(这个阶段不会报语法错误) gcc -E hello.c -o hello.i 编译:将预处理后的文件编译成汇编文件(这个阶段会报语法错误) gcc -S hello.i -o hello.s 汇编:将汇编文件生成 阅读全文
posted @ 2023-02-27 18:08 牙齿凤 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 普通局部变量 定义形式:在 {} 里面定义的普通变量叫普通局部变量 作用范围:所在的 {} 复合语句之间有效 生命周期:所在的 {} 复合语句执行期间有效 存储区域:栈区 注意事项: 普通局部变量,如果不初始化,内容就不确定 普通局部变量如果同名,就采用就近原则(尽量不要同名) 普通全局变量 定义形 阅读全文
posted @ 2023-02-27 16:13 牙齿凤 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 进程:可执行文件从运行到结束,整个动态的过程就叫进程(在内存进行,占据内存空间) 在32位平台,每一个进程占4G空间(虚拟空间),系统为内存的每一个字节,分配一个32位的地址编号 阅读全文
posted @ 2023-02-27 13:17 牙齿凤 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 普通变量作为函数的参数 如果函数内部需要使用外部变量的值,需要将外部变量的值传递给函数内部,这时普通变量就要作为函数的形参(单向传递之值传递) 数组作为函数的参数 数值数组作为函数的参数 函数内部可以操作(读写)外部数组的元素 字符数组作为函数的参数 阅读全文
posted @ 2023-02-27 11:15 牙齿凤 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 函数的概念 为同一功能服务的代码,封装成一个整体,可以多次调用(一份代码,多次调用) 定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值。例如需要传哪些数据给函数(实参),函数的功能代码(函数体)怎么实现,需要返回啥类型的数据(返回值类型) 函数的分类 定义角度 库函数(c语言库)、自定 阅读全文
posted @ 2023-02-25 18:40 牙齿凤 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 当有多个字符串时,可以使用二维字符数组 例如:char arr[3][128] = {"hello", "world", "hehehe"}; 二维字符数组的遍历 阅读全文
posted @ 2023-02-25 15:43 牙齿凤 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 键盘获取字符数组 scanf 和 %s 获取字符串,遇到空格或回车,结束输入 gets函数获取带空格的字符串(不推荐使用) gets函数可以获取带空格的字符串,但是不会获取回车 gets函数存在的风险:在获取键盘输入的时候,不会判断目的空间是否足够,容易造成越界 fgets函数获取带空格的字符串(安 阅读全文
posted @ 2023-02-25 11:22 牙齿凤 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 一维字符数组初始化 逐个元素初始化(不推荐) 例如:char arr[5] = {'h', 'e', 'l', 'l', 'o'}; 以字符串的方式初始化(推荐) 例如:char arr[6] = "hello"; 注意:"" 描述的是字符串,比如字符串"hello",编译器会自动在字符串末尾添加 阅读全文
posted @ 2023-02-24 21:57 牙齿凤 阅读(93) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示