Linux系统:跟目录一般有以下文件
etc: 系统配置 bin : 可执行文件 home : 家目录下文件 proc : 进程相关
绝对路径:相对于根目录的路径
相对路径:相对于当前路径的路径
linux系统中不以后缀名区分文件类型,常见的7中文件类型
b :块设备文件
s:套接字文件
p:管道文件
-:普通文件
l:连接文件
c:字符文件
d:目录文件
编程语言分为:编译语言和解释型语言
计算机最终能识别的一定是二进制数据
编译4步骤:预处理-->编译-->汇编-->链接
预处理:头文件的展开,宏定义的替换,注释的删除
GCC-E hello. c -o hello.i
编译:语法解析, 词法分析,用来查错的
GCC -E hello.i -o hello.s
汇编:生成对应的二进制文件
gcc - E hello.s -o hello.o
链接:链接库文件,生成对应的可执行文件
gcc -E hello.o -o hqyj
printf : 是标准C库中的函数,将内容输出到终端上
计算机中数据的存储:分为数值型数据的存储和非数值型数据的存储
数值型的数据:
十进制:
二进制:前导符0b,
二进制转十进制:
0b1101 = 1*2^0 + 0*2^1 + 1*2^2 + 1*2^3 = 1+0+4+8 = 13
十进制转二进制:采用除2取余法,直到商为0,将结果,从上至下取出,从左至右写出,
八进制:前导符是0,
八进制转二进制:一个八进制数对应三个二进制数
567 = 101110111
二进制转八进制数:每三个二进制数对应一个八进制数(从右向左,高位不足就补0)
101 110 111 = 5 6 7
十六进制数:前导符是0 x
不管几进制数,计算机最终都会转成二进制数来处理
非数值型数据存储:例如 人名
在C语言中 被单引号或者双引号括住的都默认为字符 "zhangsan" '8'
所以计算机会将字符转成ascii码来处理
常见ascii码;
A-Z = 65-90
a-z = 97-122
0- 9 = 48-57
\n = 10
\0 = 0
C语言中是严格区分大小写的,关键字都是小写的
标识符:不能以数字开头,有数字 字母 下划线组成,尽量有有意义一些,见名知意
C语言的本质是操作内存
内存上的数据和硬盘上的数据的区别:
内存上的数据掉电丢失,硬盘上的数据掉电不丢失,但是内存处理数据的速度远远高于硬盘上的速度
枚举类型:enum
数值型数据存储涉及到的源码 反码 补码的问题:
存储看正负:
如果是正数 ,源码=反码=补码
如果是负数,反码= 源码按位取反,符号位不变, 补码=反码+1
取出时看有无符号(signed,unsigned)
如果是unsigned:
源码=反码=补码
如果是signed:
反码= 源码按位取反(符号位不变),补码=反码+1