C 关键字的秘密 上

本文章依据唐老师视频总结而来.

数据类型

数据类型可以理解为固定内存大小的别名
数据类型是创建变量的模子

类型本质


变量本质
变量是一段实际连续存储空间的别名
程序通过变量来申请并命名存储空间
通过变量的名字可以使用存储空间


32个关键字: 
auto 、int、double、long、char、short、float、unsigned、signed、 sizeof
extern static goto if else 、struct、 typedef union enum switch
case、 break、 default do while const register volatile 、return、 void for continue
define include 带#是于处理指令

unsigned/signed
数据类型的最高位用于标识数据符号
- 最高位为1,表明这个数为负数
- 最高位为0,表明这个数为正数

有符号数用补码表示
- 正数的符号位为0
- 负数的符号位为1

无符号数用原码表示
- 无符号数默认为正数
- 无符号数没有符号位

固定长度无符号数  无限循环于MIN_VALUE与MAX_VALUE之间
MAX_VALUE + 1 -> MIN_VALUE
MIN_VALUE - 1 -> MAX_VALUE

只有整数类型能够声明unsigned变量
unsigned char   [0 -- 255 ]     0-255之间无限循环
signed  char   [-128 -- 127 ]   -128-127之间无限循环

tips
当无符号数与有符号数混合计算时,会将有符号数转换为无符号数后再进行计算,结果为无符号数

浮点数 float/double 
浮点数在内存的存储方式为:符号位、指数、尾数

float 表示的数字之间不是连续的,存在间隙
float 只是一种近似的表示法,不能作为精确数使用



goto
高手潜规则:禁用goto
项目经验:程序质量与goto的出现次数成反比


void
void修饰 函数返回值参数
- 若函数没有返回值,应将其声明为void
- 若函数没有参数,应声明其参数为void
void修饰函数返回值和参数为了表示"无"

不存在void变量
C没有定义void究竟是多大内存的别名


void指针意义
- C语言规定只有相同类型指针才可以相互赋值
- void * 指针作为左值用于 接受任意类型指针
- void * 指针作为右值赋值给其他指针时需强制类型转换  


sizeof
sizeof是编译器 内置指示符 ,不是函数
sizeof用于计算 类型和变量 所占内存大小
sizeof值在 编译期 就已经确定


- 在编译过程中所有的sizeof将被具体的数值所替换
- 程序的执行过程与sizeof没有任何关系

strlen 
strlen是函数,在 运行时才能确定
strlen用于计算 相应实体实际长度大小
字符串计算:返回字符串所包含的字符数目, 不包含结束标志空字符,即'\0'
strlen返回值是用无符号数定义的,相减不可能产生负数

< 一条语句实现strlen >


小结

sizeof是内置指示符,只运行于编译期
strlen是函数,只运行于运行期
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值