C语言-C语言基础知识

文章涵盖了编程语言的发展,GCC编译器的四步编译过程,计算机存储单位的定义,不同进制数据的转换方法,以及VSCode的常用快捷键,包括行操作、代码跳转和格式化等功能。同时,介绍了词法符号、关键字和标识符的概念,以及ASCII码在非数值型数据中的应用。
摘要由CSDN通过智能技术生成

目录

补充:vscode快捷键

【1】编程语言发展历程

【2】gcc编译器

【3】计算机存储单位

【4】计算机数据的表现形式

【5】词法符号

【6】关键字

【7】标识符

任务:


补充:vscode快捷键

ctrl+d:复制光标所在的行

shift+del:删除光标所在的行

alt+上箭头:将光标所在的行上移一行

alt+下箭头:将光标所在的行下移一行

ctrl+鼠标点击函数原型:跳转到函数头文件定义

alt+左箭头:回退(回退和前进在代码跳转中非常有用,可以帮助我们看一些接口的原始定义)

alt+右箭头:前进

文件中右键->格式化代码(ctrl+shift+i):自动格式化代码

ctrl+f:在当前文件中搜索

ctrl+shift+f:在当前工程中搜索

ctrl+k然后再按ctrl+t:修改主题

ctrl+p:快速选择文件打开

ctrl+shift+o(或者ctrl+p输入@):打开当前代码的函数列表

ctrl+/:对选中的代码自动加注释,再按一次可以去掉注释

【1】编程语言发展历程

机器语言 二进制序列

汇编语言 移植性较差

高级语言 c c++ java

【2】gcc编译器

功能:将代码转换程计算机能识别的机器语言

四步编译过程:

1. 预处理

展开头文件,删除注释等无用内容,替换宏定义

gcc -E hello.c -o hello.i

2. 编译

检查语法错误,有错就报错,没错就转换成汇编语言,生成汇编文件

gcc -S hello.i -o hello.s

3. 汇编

将汇编文件转换成二进制目标文件

gcc -c hello.s -o hello.o

4. 链接

链接库文件 ,最终生成机器能够识别的可执行文件

gcc hello.o -o hello

./hello

【3】计算机存储单位

1字节(Byte) = 8位(bit)

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1T = 1024GB

【4】计算机数据的表现形式

  1. 数值型数据

二进制 :0-1

八进制 :0-7

十进制 :0-9

十六进制 :0-9 a-f

  1. 进制转换
  • 十进制转二进制:

1) 短除法 :除2倒取余

2) 拆分法 :拆成2的次方和

3) 计算机法:程序员模式

  • 二进制转十进制

求2的次方和

最低位是2的0次方,向左依次递增,将有1的位求和

101110 =》2^5+2^3+2^2+2^1 = 46

  • 八进制转二进制

1位8进制可以转换为3位二进制来表示,八进制以0开头

053 = 》101 011

0765=> 111 110 101

  • 二进制转八进制:

从低位开始,每3个二进制为一组,转换成一位8进制,不够补零

1001011 =》 0113

101101001 =》 0551

  • 十六进制转二进制:

一位16进制用4位二进制来表示(8421)

0xab=> 1010 1011

0x3ce=> 0011 1100 1110

  • 二进制转16进制:

从低位开始,每4位二进制为一组转换为一个16进制,不够补零

1100011010=》0011 0001 1010 =》0x31a

练习:

分别转换成二进制

389     10000101
045		100101
0xac10  1010  1100  0001 0000
分别转换成八进制、十六进制
101010110101
05265
0xab5
  1. 非数值型数据

man ascii        查看ASCII码表

常用ASCII码

'\0'	0	字符串结束的标志
'\n'	10	换行
' '		32	空格
'0'		48	字符0
'9'		57	字符9
'A'		65	大写字母A
'Z'		90	大写字母Z
'a'		97	小写字母a
'z'		122	小写字母z

【5】词法符号

概念:由若干字符组成的有意义的最小语法单位

分类:关键字、运算符、标识符、分隔符、标点符号

【6】关键字

概念:由系统预定义的具有特殊功能的词法符号

分类:

存储类型:auto static extern register
数据类型:char short int long float double signed unsigned
构造类型:struct(结构体) union(共用体) enum(枚举)
选择结构:if else switch case default
循环结构:for while do goto break continue
其他:void(空类型)typedef (重定义) volatile(防止被编译器优化)
	const(常量化) sizeof(计算数据所占空间的大小) return(返回值)

【7】标识符

用来标识变量、函数或其他用户自定义的项目的名称

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

2. 开头不能是数字

3. 不能和关键字重复

4. 见名知义

任务:

进制转换:

将下列十进制、八进制、十六进制数分别转化为二进制:

102 、074、0xa9e

将二进制分别转化为十进制、八进制、十六进制数:

110110110

第一题:
102 转换为二进制得到: 1100110
八进制数 074 的二进制得到: 11100
十六进制数 0xa9e 的二进制得到: 10101001110
第二题:
十进制: 	438
八进制: 	666
十六进制:	1B6

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值