c语言字母表关键字,读书笔记-C语言关键字
001 关键字
C语言一共32个关键字
1. 声明和定义
在开始认识关键字前,必须要明白什么是声明,什么事定义:
定义:(编译器)创建一个对象,为这个对象分配一段内存并给他取上一个名字。在一个作用域内,一个变量或者对象只能定义一次,并且定以后为它分配的内存不可变;
声明:1、告诉编译器这个名字已经和一片内存匹配上了,并且这个内存是在其他地方定义的,声明可以多次;2、告诉编译器,这个名字已经占用,不能再用来定义其他变量或者对象了。
备注:定义创建了对象,并为它分配了内存,声明没有分配内存
2. 关键字
2.1. auto(最宽宏大量的关键字)
在默认情况下,编译器默认所有变量都是auto的,所以我们可以当它不存在。
2.2. register(最快的关键字)
请求编译器,尽可能的把使用register定义的变量发到CPU的寄存器中,不保证一定放。(CPU的寄存器有限)
注意:register变量长度应该小于等于int,并且不能使用&(register变量不存放在内存中)
2.3. static (最名不符实的关键字)
修饰变量
修饰全局变量,从定义开始到文件结束可用,其他文件即使使用extern 也不能使用
修饰局部变量,只能在函数体里面使用
由于被static修饰的变量都是存放在内存的静态区,所以即使函数运行结束,这个变量也不会被销毁,函数下次使用时任然能用到这个值。
修饰函数
函数使用static修饰表示作用域仅限于本文件,又称内部函数
2.4. short、int、long、char、float、double(基本数据类型)
变量的命名规则
min length && max information
望而知意,便于记忆
由多个单词组成是,要么用下划线隔开,要么每个单词首字母大写
尽量避免出现数字编号,除非逻辑上需要
所有宏定义、枚举常数、只读变量全部用大写字母命名,用下划线分割单词
循环变量 n 、m、i、j、k;char c; int a[]; int *p 。
2.5. sizeof (最冤枉的关键字)
sizeof 是 32 个关键字中的一个,而不是一个函数。
sizeof(int) * p 表示什么意思呢?
2.6. signed unsigned 关键字
先来分析一段代码
#include
int main()
{
signed char a[1000];
int i = 0;
for (i = 0; i < 1000; i++)
a[i] = -1 - i;
}
printf("%d ", strlen(a));
return 0;
当 i = 128 的时候,a[128] = -1 - 128 = -129 ,signed char 的取值范围是 -128~127,所以超出了范围,-129 源码: 1 1000 0001 ,补码:1 0111 1111 ,低 8 位 0111 1111 ,即 127。
当 i = 255 的时候,a[255] = -1 - 255 = -256 , -256 的原码 11 0000 0000 补码:11 0000 0000 ,低 8 位全为 0, strlen 遇到 '