嵌入式学习Day2(C 语言基础)

本文介绍了C语言的基础知识,包括数据类型(如char、short、int、long和浮点数)、宏定义的使用、变量的声明和存储类型(auto、register、static、extern),以及各类运算符(算术、关系、逻辑和位运算)的概念和用法。

前言

操作做系统和基本的工具准备好了,接下来开始为C语言打基础,而学好一门编程语言,数据类型是首先需要了解的,而数据类型又是用来约束变量的,不同类型的数据占内存的空间不同。这里还需要引入变量的概念,变量相当于电脑内存中的一个存储空间的别名,我们通过别名来使用该存储空间。有了变量和数据类型,我们需要用这些变量做一些运算所以这里还会介绍一些运算符。

C语言的数据类型大致可以分类四大类:

  1. 基本数据类型
  2. 构造类型
  3. 指针类型
  4. 空类型

基本数据类型

取值范围是根据数据所占空间决定的。以char为例,字符型数据占一个字节内存即1Byte=8bit,最高位是符号位,负数符号位为1正数符号位为0,则剩下7位,27=128,则可以表示0~127且计算机存数据以补码形式,正数原反补一样,负数补码为其源码的反码加1,特别的(补码:1000_0000表示-128)所以char的范围是-128 ~ 127。

64位操作系统下

数据类型名称占用内存值范围
char字符型1Byte-128 ~ 127 或 0 ~ 255
short短整型2Byte-32768 ~ 32767
int整型4Byte-2,147,483,648 ~ 2,147,483,647
long长整型8Byte-(264)/2 ~ (264 )/2 - 1
float单精度浮点数4Byte1.2E-38 ~ 3.4E+38
double双精度浮点数8Byte2.3E-308 ~ 1.7E+308
unsigned short无符号短整型2Byte0~65535
unsigned int无符号整型4Byte0~ 4,294,967,295
unsigned long无符号长整形8Byte0 ~ (264-1 )

在这里插入图片描述
在这里插入图片描述

参考:https://blog.csdn.net/zhh763984017/article/details/118057831

英文以及一些符号由ASII表对应,这里简单记录一下几个常用的。

A对应的ASII表十进制数是65依次往下是其他字母,且大小写字母之间差了32即65+32=97即为a,’ 空格 ’ 对应的数为32 ,字符‘ 0 ’ 对应48 即数字和其对应字符之间差48。

输入ASII对十进制数
A65
a97
’ 0 ’48
’ 空格 ’32

宏定义

为了增强代码可读性和可维护性通常会将一些常量定义为标识常量。
形式为 #define <表示常量名称> <常量>

例子:在这里插入图片描述
这里需要注意TWO = ONE + ONE是直接展开代入计算,而不是求和之后再带入计算,因此结果为32。
在这里插入图片描述

变量

变量形式说明:
<存储类型> <数据类型> <变量名>

存储类型分为四类:auto、register、static、extern

默认情况下不声明存储类型时为auto。(只在一个程序范围内存在,其默认值随机)
说明:在范围内变量存在,出范围变量被销毁

register型则表明对应的变量数据存储在CPU内的寄存器内(我的理解)。

static变量称为静态存储类型的变量,既可以在函数体内,也可以在函数体外说明。(默认值为0)
说明:当循环内部局部定义了一个static局部变量时,其默认值为0,只要程序不结束变量不会被销毁,可以记录下上一次的数据,程序结束时才销毁。
例子在这里插入图片描述
在这里插入图片描述
当变量在一个文件中的体外说明时,所有其他文件中的函数或程序都可以调用这个变量,编译时需要读取两个文件。且其他文件使用该变量时候需要声明:extern <数据类型> <变量名>

运算符

算数运算符关系运算符逻辑运算符位运算符
+、-、*、/、++(加1)、–(减1)>、>=、<、<=、==(等于)、!=(不等)!(逻辑反)、&&(逻辑与)、(|| )逻辑或~(按位反)、&(按位与)、|(按位或)、^(按位异或)<<(左移)、>>(右移)

说明:1.逻辑与 && 逢0截止,逻辑或 || 逢1截止
2.移位操作,左移相当于乘2,右移相当于除2

位运算可以用于把无符号数的某位快速清0或置1
例:将x=0000_1000 的倒数第y位置1 那么只需要将x和1移位后按位或即 x | (1<<(y-1)) 即可
若要将x=1110_1101 的倒数第y位清0那么可以将x与1移位之后的反按位与即 x & ~(1<<(y-1)) 即可

其他运算符

1.条件运算符“ <表达式1> ? <表达式2> : <表达式3>”
如果表达式1为真则执行表达式2否则执行表达式3

2.逗号运算符
x = ( 表达式1,表达式2,表达式3 ) 顺序执行 ,最后一个表达式的值赋给x

3.sizeof运算符
形式:sizeof(<类型或变量名>)

注:C语言中运算符有一定的优先级(可自行查表)

以上就是第二天的学习内容。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值