02 2023 档案

摘要:库的介绍 库:将源文件生成二进制文件,只需要链接就可以生成可执行文件 阅读全文
posted @ 2023-02-28 10:44 牙齿凤 阅读(10) 评论(0) 推荐(0) 编辑
摘要:条件编译的作用: 1、代码裁剪(不更改原有代码) #include <stdio.h> #include <string.h> void test01() { char str[128] = ""; fgets(str, sizeof(str), stdin); str[strlen(str) ‐ 阅读全文
posted @ 2023-02-28 10:42 牙齿凤 阅读(52) 评论(0) 推荐(0) 编辑
摘要:使用关键字define 定义就叫宏。例如: #define PI 3.14 (宏定义) 在预处理阶段,使用3.14替换所有出现 PI 的位置(宏展开) 注意:宏后面不要加分号 建议宏尽量用大写字母,用于和普通变量分开 宏的作用范围是从宏定义处开始到当前文件结束都有效(#undef可以结束宏) 宏没有 阅读全文
posted @ 2023-02-27 18:44 牙齿凤 阅读(93) 评论(0) 推荐(0) 编辑
摘要:头文件包含 在预处理阶段,将头文件的内容原封不动的包含在目的文件中 例如:#include<head.h> (建议 < > 中包含的是系统头文件) < > 符号代表从系统指定目录寻找head.h头文件 例如:#include "head.h" (建议 " " 中包含的是自定义头文件) " " 符号代 阅读全文
posted @ 2023-02-27 18:18 牙齿凤 阅读(114) 评论(0) 推荐(0) 编辑
摘要:编译过程:预处理、编译、汇编、链接 预处理:包括宏替换、删除注释、头文件包含、条件编译(这个阶段不会报语法错误) gcc -E hello.c -o hello.i 编译:将预处理后的文件编译成汇编文件(这个阶段会报语法错误) gcc -S hello.i -o hello.s 汇编:将汇编文件生成 阅读全文
posted @ 2023-02-27 18:08 牙齿凤 阅读(20) 评论(0) 推荐(0) 编辑
摘要:普通局部变量 定义形式:在 {} 里面定义的普通变量叫普通局部变量 作用范围:所在的 {} 复合语句之间有效 生命周期:所在的 {} 复合语句执行期间有效 存储区域:栈区 注意事项: 普通局部变量,如果不初始化,内容就不确定 普通局部变量如果同名,就采用就近原则(尽量不要同名) 普通全局变量 定义形 阅读全文
posted @ 2023-02-27 16:13 牙齿凤 阅读(32) 评论(0) 推荐(0) 编辑
摘要:进程:可执行文件从运行到结束,整个动态的过程就叫进程(在内存进行,占据内存空间) 在32位平台,每一个进程占4G空间(虚拟空间),系统为内存的每一个字节,分配一个32位的地址编号 阅读全文
posted @ 2023-02-27 13:17 牙齿凤 阅读(43) 评论(0) 推荐(0) 编辑
摘要:普通变量作为函数的参数 如果函数内部需要使用外部变量的值,需要将外部变量的值传递给函数内部,这时普通变量就要作为函数的形参(单向传递之值传递) 数组作为函数的参数 数值数组作为函数的参数 函数内部可以操作(读写)外部数组的元素 字符数组作为函数的参数 阅读全文
posted @ 2023-02-27 11:15 牙齿凤 阅读(26) 评论(0) 推荐(0) 编辑
摘要:函数的概念 为同一功能服务的代码,封装成一个整体,可以多次调用(一份代码,多次调用) 定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值。例如需要传哪些数据给函数(实参),函数的功能代码(函数体)怎么实现,需要返回啥类型的数据(返回值类型) 函数的分类 定义角度 库函数(c语言库)、自定 阅读全文
posted @ 2023-02-25 18:40 牙齿凤 阅读(94) 评论(0) 推荐(0) 编辑
摘要:当有多个字符串时,可以使用二维字符数组 例如:char arr[3][128] = {"hello", "world", "hehehe"}; 二维字符数组的遍历 阅读全文
posted @ 2023-02-25 15:43 牙齿凤 阅读(135) 评论(0) 推荐(0) 编辑
摘要:键盘获取字符数组 scanf 和 %s 获取字符串,遇到空格或回车,结束输入 gets函数获取带空格的字符串(不推荐使用) gets函数可以获取带空格的字符串,但是不会获取回车 gets函数存在的风险:在获取键盘输入的时候,不会判断目的空间是否足够,容易造成越界 fgets函数获取带空格的字符串(安 阅读全文
posted @ 2023-02-25 11:22 牙齿凤 阅读(59) 评论(0) 推荐(0) 编辑
摘要:一维字符数组初始化 逐个元素初始化(不推荐) 例如:char arr[5] = {'h', 'e', 'l', 'l', 'o'}; 以字符串的方式初始化(推荐) 例如:char arr[6] = "hello"; 注意:"" 描述的是字符串,比如字符串"hello",编译器会自动在字符串末尾添加 阅读全文
posted @ 2023-02-24 21:57 牙齿凤 阅读(92) 评论(0) 推荐(0) 编辑
摘要:二维数组 数组的数组,例如arr[3][4] >3是行标,4是列标 二维数组的总大小 == 行数*列数*每个元素的大小 数组的总大小 == sizeof(arr) 行数 == sizeof(arr) / sizeof(arr[0]) 列数 == sizeof(arr[0]) / sizeof([0] 阅读全文
posted @ 2023-02-24 15:29 牙齿凤 阅读(36) 评论(0) 推荐(0) 编辑
摘要:sizeof(arr) == 表示数组的总大小 sizeof(arr[0]) == 表示第0个元素的大小 sizeof(arr) / sizeof(arr[0]) == 表示数组元素的个数 一维数值数组的初始化 全部元素初始化 例如:int arr[5] = {10 , 20, 30, 40, 50 阅读全文
posted @ 2023-02-24 11:24 牙齿凤 阅读(101) 评论(0) 推荐(0) 编辑
摘要:用一段连续空间,存放相同类型的变量,这样的容器(结构)叫数组 数组的下标是从0开始 假如数组有n个元素 下标范围:0 ~ n-1 元素范围:arr[0] ~ arr[n-1] 定义数组的步骤: 1、用数组名和 [] 表示数组 2、将数组的个数放入 [] 中 3、用数组内元素的类型,定义一个变量 4、 阅读全文
posted @ 2023-02-24 10:04 牙齿凤 阅读(21) 评论(0) 推荐(0) 编辑
摘要:for循环 初始化语句只会在调用for的时候执行一次。如果执行条件为真,则执行循环体,否则跳出循环。步进语句在执行完循环体之后自动执行,然后再判断循环条件 while循环 如果知道循环次数,建议使用for循环 如果不知道循环次数,但是知道退出条件,建议使用while循环 break:跳出循环 con 阅读全文
posted @ 2023-02-23 21:05 牙齿凤 阅读(9) 评论(0) 推荐(0) 编辑
摘要:if 语句 如果只要某一个结果,需要使用if语句 如果有两个结果,但是不会同时出现,需要使用if...else语句 如果有多个结果,但是不会同时出现,需要使用if...else if...else...语句 如果有多个结果,但是不确定是否会同时出现,需要使用if语句独立判断 switch语句 表达式 阅读全文
posted @ 2023-02-23 19:17 牙齿凤 阅读(21) 评论(0) 推荐(0) 编辑
摘要:算数运算符 +、-、*、/、%、+=、-=、*=、/=、%= 如果 / 的所有对象都是整数,那么 / 的功能就是取整。例如:5 / 3 == 1 如果 / 有一个运算对象是实型(浮点数),那么 / 的功能就是除法运算 %(取余)运算符不能用于浮点数,例如5.0 % 2 会报错 +=、-=、*=、/= 阅读全文
posted @ 2023-02-23 17:07 牙齿凤 阅读(133) 评论(0) 推荐(0) 编辑
摘要:自动类型转换 将小的类型转换成大类型,保证精度不丢失 无符号和有符号参加运算,需要将有符号转换成无符号 int和double参加运算,会将int转成double类型 char和short类型,只要参加运算,都会转换成int类型 强制类型转换 (类型说明符) + (表达式) 不管是自动类型转换,还是强 阅读全文
posted @ 2023-02-23 11:11 牙齿凤 阅读(14) 评论(0) 推荐(0) 编辑
摘要:转义字符 \和某些字符结合产生新的字符含义就叫转义字符 '\0' == ASCII为0 '\n' == 换行符 '\t' == tab缩进符 '\r' == 回到行首符 '\a' == 发出警报 八进制转义 '\ddd' 每个d的范围必须是0~7,3个d表示最多识别3位八进制数据 十六进制转义 '\ 阅读全文
posted @ 2023-02-23 10:30 牙齿凤 阅读(34) 评论(0) 推荐(0) 编辑
摘要:const 修饰变量为只读 register 修饰寄存器变量 如果变量被高频繁的使用,会自动将变量存储在寄存器中。目的:提高访问效率 如果想将变量直接放入寄存器中,可以加register修饰。例如:register int num = 10; //将num放入寄存器 volatile 1、强制访问内 阅读全文
posted @ 2023-02-22 21:48 牙齿凤 阅读(5) 评论(0) 推荐(0) 编辑
摘要:计算机存储的是数据的补码 原码 数据的二级制形式。例如123的原码:0111 1011 无符号数:原码==反码==补码 123原码:0111 1011 123反码:0111 1011 123补码:0111 1011 有符号数 正数:原码==反码==补码 +123原码:0111 1011 +123反码 阅读全文
posted @ 2023-02-22 18:16 牙齿凤 阅读(430) 评论(0) 推荐(0) 编辑
摘要:进制概述 二进制:0~1 C语言不能直接输出二进制 八进制:0~7 以0开头,例如:0123,用%o输出八进制,不区分正负数 十进制:0~9 例如:123,用%d、%ld、%hd、%u、%lu、%hu输出十进制,区分正负数 十六进制:0~9,a~f 例如:0x12,以%x输出十六进制,不区分正负数 阅读全文
posted @ 2023-02-22 17:49 牙齿凤 阅读(180) 评论(0) 推荐(0) 编辑
摘要:有符号数 数据二进制的最高位为符号位,其它位是数据位。最高位是1,表示负数。最高位是0,表示正数 以一字节为例: 1111 1111~1000 0000~0000 0000~0111 1111 -127 ~-0 ~+0 ~+127 计算机会将-0看成-128,所以范围为-128~127 无符号数 没 阅读全文
posted @ 2023-02-22 17:21 牙齿凤 阅读(221) 评论(0) 推荐(0) 编辑
摘要:实型常量 3.14 3.14f 以f结尾的实型常量是float类型,不以f结尾的实型常量是double类型 实型变量 float f = 0.0f; //float定义 double d = 0.0; //double定义 阅读全文
posted @ 2023-02-22 17:00 牙齿凤 阅读(126) 评论(0) 推荐(0) 编辑
摘要:char 必须包含单引号'',例如'a'、'0' 单引号只能作用一个字符,转义字符除外 单引号的作用: 'a' 描述a为字符 取字符的ASCII值 字符变量的定义:char ch = '\0'; '\0'的ASCII值是0 字符变量的获取: 1、scanf('%c', &ch); 2、ch = ge 阅读全文
posted @ 2023-02-22 16:27 牙齿凤 阅读(46) 评论(0) 推荐(0) 编辑
摘要:scanf函数: #include<stdio.h> //需要的头文件 int scanf(const char *format, ...); format:获取数据的格式 &num代表空间的起始地址 scanf和%d结合,只能提取数值,非数值立即停止提取 阅读全文
posted @ 2023-02-22 15:49 牙齿凤 阅读(43) 评论(0) 推荐(0) 编辑
摘要:常量:所见即所得,值不能修改 例如:'a'(char) 10(int) 3.14f(float) 3.14(double) 变量:系统会根据变量的类型大小,为变量开辟内存空间,值可以被修改 例如:int num = 10; (系统根据int类型给num开辟4个字节的空间,空间内容是10) 变量名代表 阅读全文
posted @ 2023-02-21 18:00 牙齿凤 阅读(18) 评论(0) 推荐(0) 编辑
摘要:1、数据类型相关的关键字(32位平台) char 字符类型 1字节 short 短整型 2字节 int 整型 4字节 long 长整型 4字节 float 单精度浮点型 4字节 double 双精度浮点型 8字节 struct(结构体)、union(共同体)、enum(枚举)、signed(有符号数 阅读全文
posted @ 2023-02-21 16:37 牙齿凤 阅读(37) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示