Linux C语言基础 day2

目录

学习目标:

学习内容:

1.vi编辑器:

文件相关操作:

vi编辑器的三种模式

2.vscode编辑器

3.gcc编译器

完整编译四部

1.预处理

2.编译

3.汇编

4.链接

4.计算机的存储单位

4.1 数值型数据的存储

4.1.1 二进制

4.1.2 八进制

4.1.3 十进制

4.1.4 十六进制

4.2 进制转换

八进制转二进制

二进制转八进制

十进制转二进制:

十六进制转二进制

4.3 非数值型数据的存储

4.4 内存单位

5.词法符号

5.1 关键字

5.2 标识符

5.3 运算符

5.3.1 算术运算符

课后作业:


学习目标:

  • 一周掌握 C语言入门基础

学习内容:

1.vi编辑器:

touch test1.c

vi test1.c

文件相关操作:

cat test1.c在终端查看文件的内容

head test1.c在终端查看文件内容,默认查看前十行

head -n test1.c 在终端查看文件内容de前n行

tail test1.c在终端查看文件内容,默认查看后十行

tail -n test1.c 在终端查看文件内容de后n行

vi编辑器的三种模式

1) 命令行模式

        打开一个文件默认的就是在命令行模式下,命令行模式一般是用来复制和粘贴代码的。其他模式下按 esc 按键就可以回到命令行模式。

2)  插入模式

        插入模式才是能用来插入文本的,进入插入模式的方式:

在命令行模式下:

i                                   在光标前开始插入

I   (大写的i)在光标所在行的行首开始插入

a                                  在光标后开始插入

A                在光标所在行的行尾开始插入

o      在光标所在行下面新起一行开始插入

O     在光标所在行上面新起一行开始插入

3)  底行模式

在命令行模式下 输入冒号 : 就进入了底行模式

底行模式主要是用来保存退出的

:w 保存

:q 退出

:wq 保存并退出

:q! 不保存强制退出

2.vscode编辑器

打开vscode来编译代码。

3.gcc编译器

完整编译四部

1.预处理

展开头文件,替换宏定义,删除注释

gcc -E test.c -o test.i

2.编译

检查语法问题,有错报错,没有则继续运行生成汇编文件

gcc -S test.i -o test.s

3.汇编

生成一个不可执行的二进制文件

gcc -c test.s -o test.o

4.链接

链接库函数,最终生成二进制可执行文件

gcc test.o -o test(可执行文件名)

运行:./test

4.计算机的存储单位

4.1 数值型数据的存储

4.1.1 二进制

方便计算机识别的

前导符 0b

逢2进1 每一位上的数字只能是 0 或 1

如:0b1011

4.1.2 八进制

前导符 0

逢8进1 每一位上的数字范围 [0,7]

如:0456 034

4.1.3 十进制

没有任何前导符

逢10进1 每一位上的数字范围 [0,9]

如:1314 521

4.1.4 十六进制

前导符 0x

逢16进1 每一位上的数字范围 0~9 a:10 b:11 c:12 d:13 e:14 f:15

如:0xAB 0X5F

4.2 进制转换

八进制转二进制

方式1:八转十 然后 十转二

方式2:1位八进制数表示3位二进制数

0456 -->0b100101110

二进制转八进制

从右向左,3位二进制对应1位八进制 高位不足时补0

0b1011010-->八进制

0b001011010 -->0132

十进制转二进制:

使用除2取余法:

用这个数除以2,得到商和余数,然后用商再除以2,

又得到商和余数,依次类推,直到商为0时结束

将每一步得到的余数反向取,得到的就是二进制数了

十六进制转二进制

方式1:十六转十 然后 十转二

方式2:1位十六进制数表示4位二进制数

0X5F -->0b01011111

4.3 非数值型数据的存储

非数值型数据实际应用操作ASCII

man手册 一般用来查看一些命令函数用法

终端输入man man

常见的字符对应的ascii码

'A' 65

'a' 97

'0' 48

'\n' 10

'\0' 0

space 32

转义字符:

任何一个字符都可以用一个 \ 加上一个整数(八进制的)来表示

C语言中还定义了一些 \+字符 来表示那些 无法显示的字符

如 '\n' '\a' '\t' 等。

这字符称为转义字符,因为这些字符已经不是自身的含义了。

4.4 内存单位

字节 Byte

1Byte = 8bit

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

5.词法符号

5.1 关键字

存储类型:auto static extern register

数据类型:int char float short long double signed unsigned

构造数据类型:struct enum union

分支:if else switch case default for do while go to break continue

其他:void const sizeof volatile return typedef

5.2 标识符

定义标识符时要符合标识符的命名规范:

1.由数字、字母、下划线组成

2.不能以数字开头

3.不能和关键字冲突

4.见名知意

5.3 运算符

5.3.1 算术运算符

+ - * / % ++ --

注意:/整数相除结果向下取整,% 要求左右操作数,必须是整数

例如:

练习:1234 使用/ %分别表示 1 2 3 4


课后作业:

  1. 解析代码分析每一步变量取值

#include <stdio.h>

int main(int argc, char *argv[])

{

int a = 10;        //a=10

int b = a--;        //b=10,a=9

int c = a + b + 2;        //c=21,b=10,a=9

int d = (b--) + (++c);        //d=32,b=9,c=22,a=9

printf("%d\n",d);

} [单选题] *

A. d = 31

B. d = 32

C. d = 33

D. d = 34

答案为B

2.

答案为9.因为k=011,按照八进制位算法得k=9.

3.

答案为D。因为这个运算符用来计算两个整数相除后的余数,因此它的操作数必须是整数类型。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值