C语言学习笔记day1

  1. vim编辑器命令

1.1 撤销

u

1.2 定位到开头

gg

1.3 定位到结尾

G(shift + g)

1.4 查找

/string(目标字符串)

n 查找下一级高亮位置

N 查找上一级高亮位置

1.5 打开多个文件

:vsp 文件名

:sp 文件名

两下ctrl + w 切换光标所在的文件

:wqa 保存退出所有的

  1. gcc编译器的四个流程步骤

2.1 预处理

处理和"#"相关的代码

2.1.1 头文件

#include

将头文件展开

2.1.2 宏定义

#define

将宏定义完成替换

2.1.3 条件编译

#if

#endif

#else

#elif

#ifndef

#ifdef

把满足条件的代码加入编译,不满足条件的代码从编译中去除

gcc -E filename.c -o filename.i

2.2 编译

将c语言代码编译成汇编代码

gcc -S filename.c -o filename.s

2.3 汇编

将汇编代码编译成二进制代码

gcc -c filename.c -o filename.o

2.4 链接

将二进制代码链接成一个可执行程序

gcc filename.c -o filename

  1. 程序调试方法

3.1 printf

3.2 gdb

  1. 进制转化

4.1 十进制:

逢十进一

0 1 2 3 4 5 6 7 8 9

4.2 二进制:

逢二进一

0 1

4.3 八进制:

逢八进一

0 1 2 3 4 5 6 7

4.4 十六进制:

逢十六进一

0 1 2 3 4 5 6 7 8 9 a b c d e f

A B C D E F

4.5 二进制、八进制、十六进制 -> 十进制:

对应位 * 对应位权值再求和

4.6 十进制 -> 二进制、八进制、十六进制

十进制数除以进制数得到的余数逆序排列,即可得到对应进制的数

4.7 内存:

4.7.1 读写速度快

4.7.2 价格高

4.7.3 掉电数据丢失

4.8 外存:

4.8.1 读写速度慢

4.8.2 价格便宜

4.8 3.掉电数据不丢失

4.9 负数在计算机中的存储:

补码:

正数补码 == 二进制本身

负数补码 == 二进制反码+1

  1. 数据类型

5.1 基本数据类型:

5.1.1 整数类型:

unsigned 无符号

signed 有符号(默认)

short: 短整形 占2个字节

unsigned值域范围: 0 - 65535

signed值域范围:-32768 - 32767

int: 整形 占4个字节

unsigned值域范围: 0 - 2^32 -1

signed值域范围: -2^31 - 2^31 -1

long: 长整型 占8个字节

unsigned值域范围: 0 - 2^64 -1

signed值域范围: -2^63 - 2^63 -1

注意:

1.注意数据类型在不同平台所占字节大小不一致

int 1 8 bits

int 2 16bits

int 4 32bits

char 字符型 占1个字节

unsigned char值域范围: 0 - 255

signed char值域范围:-128 - 127

ASCII码表:

字符和二进制转换关系

'a' -> 97

'A' -> 65

'\0' -> 0

'\n' -> 10

'0' -> 48

5.2.1 浮点数类型:

1.只有有符号类型,没有无符号类型概念

2.浮点数类型存储和整数类型不同

float 单精度浮点型 小数点后6 - 7有效数字

double 双精度浮点型 小数点后15有效数字

IEEE754

float 占4个字节 1符号位 + 8指数位 + 23尾数位

double 占8个字节 1符号位 + 11指数位 + 52尾数位

5.3.1 缺省类型:

void

搭配函数函数值,函数参数,或者指针使用,代表缺省类型

5.2 常量和变量

5.2.1 常量:

在程序运行过程中值不允许发生改变的量

5.2.1.1 整形常量(signed int)

100 signed int

123 signed int

123l signed long

123L signed long

123ul unsiged long

123UL unsigned long

0100 八进制常量

0x100 十六进制常量

5.2.1.2 浮点型常量(double)

3.1415

3.1415e10

3.1415e-10

3.1415E10

3.1415E-10

3.1415f

5.2.1.3 字符常量(signed int)

'a'

'b'

'c'

'A'

'B'

'C'

' ' 空格字符

'!'

'\'' '字符

'0'

'9'

'\\' \字符

'\0' 字符'\0'

'\n' 换行符

'\t' 横向制表符

'\a' 响铃

'\b' 退格符

'\r' 回车符

'\131' 八进制131对应的字符

'\x32' 十六进制32对应的字符

相关推荐
Linux-lucky31 分钟前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
li星野32 分钟前
【学习记录】k-Wave 时间步长、CFL 稳定性与参数实验全解析
学习
一个人旅程~3 小时前
关于imac27inch因改短用户名导致混合硬盘和系统崩溃的问题分析与故障解决
经验分享·笔记·macos·新浪微博
心祭丫丫3 小时前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
派大猩猩_5 小时前
Obsidian 笔记怎么同步多端:Nutstore Sync 大笔记库同步测评
笔记·obsidian·obsidian插件·obsidian同步
Nerd(BUG版)6 小时前
Flutter学习day5--事件手势与命中测试
学习·flutter
Nerd(BUG版)8 小时前
KMP学习day4--Kotlin空安全与泛型
学习·安全·kotlin
東隅已逝,桑榆非晚8 小时前
算法6. 双指针法-查找总价格为目标的两个商品
c++·学习·算法
wdyan2979 小时前
带着小白学习-微服务-5 实战:配置中心-数据库连接
数据库·学习·微服务
叼烟扛炮9 小时前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习