一 c语言基础
1进制转换:
二进制,八进制,十六进制
二进制:0 1
八进制: 0 1 2 3 4 5 6 7
十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f
低进制往高进制时:
对应位乘以对应位的权值再求和
高进制往低进制:
高进制数除以低进制数得到的余数逆序排列
2 程序在c语言中的运行方式
程序(外存中)
执行(加载到内存中)
执行程序结束(回收内存空间)
3 数字在内存中的存储:
正数在计算机中存储对应的二进制数
负数在计算机中存放补码
1.原码
2.反码
3.补码
4.内存数据
4.gcc编译的流程步骤:
gcc filename.c
1预处理
(1)头文件展开
(2)宏定义替换
#define M 100
(3)条件编译
gcc- E filename.c -o filename.i
2 编译
将c语言程序编译成汇编代码
gcc -S filename.c -o filename.s
3 汇编
将汇编代码编译成二进制代码
gcc filename.c -o filename.o
4 链接
将多个二进制代码链接为一个可执行程序
gcc filename.c -o filename
二 c语言中的数据类型分类
占内存空间 值域范围 存储方式
(1)short :短整型 2字节空间 -32768 - 32767 补码
(2)long :长整型 8个字节空间 -2^63 - 2^63 -1 补码
(3)int : 整型 4个字节空间 -21亿 - 21亿 补码
(4)float 单精度浮点型 4个字节 -3.4*10^38 - 1.18*10^-38 1位符号位 + 8位指数位 + 23位尾数位
(5)double 双精度浮点型 8个字节 -1.80*10^308 - 2.23*10^-308 1位符号位 + 11位指数位 + 52位尾数位
(6)char :字符型 1个字节空间 0-255 存储字符在ASCII码表中对应数字的二进制形式
(7)bool 泊尔 1个字节空间 true false 1 或者0
(8)void 缺省类型
三 c语言中的常量和变量:
1.常量 :在程序运行过程中值不允许发生改变的量
eg:#include <stdio.h>
(1)浮点型常量:
3.14.5 默认为double类型
3.1415f 为 float类型
3.14e10 为double类型
用e代表乘以10的多少次方
(2)浮点型变量:
浮点型都是有符号的
%d被称为占位符 以十进制整数方式打印
%u 以无符号十进制的方式输出无符号整型
%lu 以十进制方式输出无符号长整型
%lf 以小数形式输出双精度浮点数
%f 以小数形式输出单精度浮点数
%c 以字符形式输出字符
(3)字符型常量
‘a’'A' 'Z' '?'
字符型常量只能用一个字符
'\'为转义字符
'\b'为退行字符
'\n'为换行符
'\t'为横向制表符
'\v'为纵向制表符
'\r' 为回车符
'\b' 为退格符
'\\' 为\符
'1'-> ASCII码表->49,为字符1
'0'为字符0,ASCII码为48
'\0'为字符反斜杠0,用来标识字符串的结尾,对应的ASCII 码为0 ,在界面上什么都不显示
'\123' 八进制123对应的字符,为S
'\x32'十六进制32对应的字符
字符常量一定要用‘’包起来
2.变量:在程序运行过程中值允许发生改变的量
(1)变量需要先定义再使用
变量定义的形式
(11)变量名可以由字母数字下划线构成,但是不能以数字开头
(12)变量名不能和c语言关键字重名(比如int,lon等不能当变量名)
(13)变量名最好不要与库函数重名
(14)变量名最好要做到见名知意(驼峰法命名:第一个单词以小写字母开始,从第二个单词开始以后的每个单词的首字母都采用大写字母,内核命名法)
(2)变量拥有存储空间,也有值域范围
(3)字符型变量 char
3.常量和变量可以组成表达式:由一个或者多个运算符连接的变量和常量组成的式子
(1)整形的常量和变量
整形常量默认为int类型
100 : int类型
100l : long类型
100ul: unsign long 类型
100u :unsigned int 类型
注: 如果以0开头默认为八进制常量
如果以0x开头默认为十六进制常量
在linux中可以用man ascii 来查询ASCII表
嵌入式——从入门到精通第二天(c语言基础)
于 2024-01-16 23:13:57 首次发布