嵌入式C、C++概述

存储类型

存储类型关键字:register、static、const、auto、extern

register寄存器变量,

(1)不一定真的存放在寄存器中

(2)不能定义寄存器数组

(3)cpu读取寄存器变量比读取内存变量更快

(4)只能修饰字符型、整型无法修饰浮点型

(5)不在内存中所以无法取地址

static 静态

保存在静态区

const常量

意思只读,不能修改它的值

auto int a 与 auto是相同的意思

extern为外部的意思,一般用于函数和全局变量的声明

其他关键字

sizeof        变量数组占用存储空间的大小

typedef        重命名相关的关键字

volatile      易改变,提醒编译器从最新内存这提取变量的值

基本数据类型赋值并输出

定义char类型的变量并赋值,输出字符使用%c,使用%d可以输出对应的Ascii码值。

定义int类型的变量并赋值,输出int,short类型字符使用%d。

输出long类型字符使用%ld。

输出float类型字符使用%f,默认保留后六位。

输出double类型字符使用%lf,默认保留后六位。

常量与变量

对于计算机而言只能识别二进制代码,然而对应于其他非数字常量需要转化为数字,使用ASCII码表

整型数据

八进制:0开头

十六进制:0x开头

 字符常量与字符串常量

‘a’为字符常量,“a”为字符串常量,每个字符串的结尾编译器都会自动添加一个结束标志位‘\0’

八进制数输出是需要加个#,%#o

十六进制输出时需要加个#,%#x

格式化输出字符

 没有专门的变量保存字符串,一边使用数数组来保存 

char e[] = "hello world";
printf("e = %s\n",e);

输出地址,利用取地址符

int f = 999;
printf("&f = %p\n",&f);

类型转化

自动类型转化

 (1)当表达式中出现了char、short、int中的一种,参加运算的成员会全部变为int类型参加运算,结果为int类型

(2)表达式中出现了带小数点的实数,则全部变为double类型,结果也为double类型

(3)表达式中有无符号数和有符号数,参加运算的成员变为无符号数,结果为无符号数

(4) 在赋值语句中等号右边的类型自动转换为等号左边的类型

(5)自动类型转换只是在运算中的临时转换,不会影响自动类型转换的变量值和类型

强制类型转换

把表达式的运算结果强制转换为类型说明符表示的类型

(类型说明符)表达式

算数运算符

只有整数才能取余

关系运算符

关系运算符连接的表达式只有真和假,一般用int保存,如果为真则为非0,为假则为0

位运算符

1、&按位与

与0的0,与1得1,某位清0

2、|按位或

或1得1,或0不变

3、~按位取反

1变0,0变1

4、^按位异或

相同位0不同为1

5、位移

>>右移  分为逻辑右移:高位补0,地位溢出

                    算数右移:高位补符号位,低位溢出(有符号位)

<<左移

逗号运算符

逗号运算符必须要加括号,A=(B,C,D)

依次运行B,C,D最后A的值为D的表达式结果

循环语句

goto循环在一个函数中实现代码的跳转

 在平时编写代码时少使用goto会使代码可读性变差。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值