学习目标:
学习内容:
一、第一个C语言程序
在Linux中,C语言源程序的拓展名.c,所以C程序的源文件名字应该是xxx.c
hello.c
【1】格式
#include <stdio.h>
int main(int argc,const char *argv[])
{
printf("hello world\n");
return 0;
}
【2】注释
二、gcc编译器
c语言是编译型语言,需要编译才能执行,安全的。
【1】一步编译
gcc 文件名.c,默认生成一个名为a.out的可执行文件,执行可执行文件./a.out
gcc 文件名.c -o 可执行文件,
gcc hello.c -o hello, 编译hello.c文件生成名为hello的可执行文件,直接./hello,可以运行可执行文件。
任务
使用gcc的一步编译,编译并执行第一个C语言程序。
【2】分步编译ESc->iso
预处理----编译----汇编---链接
每一步都可以使用.c文件直接执行
i)预处理 E i
展开头文件,替换宏定义,删除注释,不会检查语法错误,生成编译文件。
gcc -E hello.c -o hello.i
ii)编译 S s
会检查语法错误,生成一个汇编文件
gcc -S hello.i -o hello.s
iii)汇编 c o
生成一个二进制文件
gcc -c hello.s -o hello.o
iv)链接
链接到程序需要的静态库/动态库,生成一个可执行文件,ELF类型的文件
gcc hello.o -o hello
三、计算机中的数据存储
数值型、非数值型
【1】计算机中的存储单位
1bit 是最小的存储单位
1Byte = 8bit 是内存分配的最小单位
1Kb = 1024Byte
1Mb = 1024Kb
1Gb = 1024Mb
1Tb = 1024Gb
【2】进制转换
二进制、十进制、八进制、十六进制、六十进制
计算机中数据的处理都是以二进制进行处理的
0010 0001
基数 | 2 | 8 | 10 | 16 |
数码 | 0 1 | 0-7 | 0-9 | 0-9 A-F |
位权从右到左 | 2^0 2^1 | 8^0 8^1 | 10^0 10^1 | 16^0 16^1 |
前导符 | 0b | 0 | 无 | 0x |
i)十进制转二进制
十进制转任意进制,直接更换辗转相除法的除数。
辗转相除法
90转16进制
ii)二进制转16进制
二进制转十六进制,每四位二进制数转一位十六进制数,四位二进制数依次是8421
1111 0110
F6
练习:
- 127转成二进制数 128=2^7 1000 0000 = 128 -1 0111 1111
- 67转二进制数 辗转相除法 0100 0011,67-64 =3 64= 2^6,0100 0011
- 67转十六进制数 43
- 255转二进制数 1111 1111 255=2^8
- 234转二进制数 1110 1010
- 214转二进制 1101 0110 从255的基础上减
- 0x67转二进制 0110 0111
iii)二进制转八进制
三位二进制数转一位八进制数
一位八进制数转三位二进制数
111 111
7 7
1、把 0100 0011转成八进制 103
练习:
1、0x57转二进制,转八进制
0101 0111,127
2、79转十六进制 0x4F
3、47转二进制 0010 1111
4、00101 1110 转十六进制 5E 八进制136
四、基本数据类型
四、基本数据类型
C语言中的数据类型分为:基本数据类型 构造数据类型 void(空类型)
【1】整形
1,2,3,4······
整形默认是int类型
【2】浮点型
3.14····
浮点型数据默认是double类型
浮点型数据在计算机存储的是一个近似值。
浮点型数据的存储遵循IEEE754标准。
float最多可以表示小数点后6位
double最多可以表示小数点后15位
数据类型 | 大小 | 占位符 |
float 单精度浮点型 | 4Byte | %f |
double 双精度浮点型 | 8Byte | %lf |
【3】字符型
非数值型数据
在计算机中以ASCII进行存储
'a','b','c'·····
数据类型 | 大小 | 占位符 |
char | 1Byte | %c输出字符 %d输出字符的ASCII码 |
sizeof(数据)运算符:求数据的大小
需要记住的ASCII码
'\n':10
'a':97
'A':65
' ':32
'0':48
五、常量
在程序运行过程中,不能修改的量。
【1】整形常量
1,2,3,4····· %d
【2】浮点型常量
1.0,2.0,7.8·····
【3】字符型常量
'a','b'···· 被单引号包起来的单个字符
【4】字符串常量
"hello","a",····· %s 被双引号包起来的一个或多个字符
C语言中字符串结束标志,字符串的结尾有一个'\0'
【5】宏定义常量
在宏定义阶段,多使用预处理查看替换结果
练习
10/4 = 2 取整数部分
1、有如下宏定义
#define N 10
#define M N+2
#define NUM M*N+M/4
求NUM的结果
2、有如下宏定义
#define M 10
#define N M+7
#define NUM M+N*N/M+7
3、使用带参宏实现,两数相加和两数相减
宏定义的注意事项(作业)
六、标准的输入输出函数
【1】输出函数 printf
学习时间:
提示:这里可以添加计划学习的时间
例如:
- 周一至周五晚上 7 点—晚上9点
- 周六上午 9 点-上午 11 点
- 周日下午 3 点-下午 6 点
学习产出:
提示:这里统计学习计划的总量
例如:
- 技术笔记 2 遍
- CSDN 技术博客 3 篇
- 习的 vlog 视频 1 个