c语言有多少关键字
你知道C语言有多少关键字吗?你能一一说出它们的名字与作用吗?
肯定有许多人答不上来,那么让我告诉你C语言一共32个关键字,具体如下:
关键字
意义
auto
声明自动变量,缺省时编译器一般默认auto
int
声明整型变量
double
声明双精度变量
long
声明长整型变量
char
声明字符型变量
float
声明浮点型变量
short
声明短整型变量
signed
声明有符号类型变量
unsigned
声明无符号类型变量
struct
声明结构体变量
union
声明联合数据类型
enum
声明枚举类型
static
声明静态变量
switch
用于开关语句
case
开关语句分支
default
开关语句中的“其他”分支
break
跳出本次循环
register
声明寄存器变量
const
声明只读变量
volatile
说明变量在程序中执行可被隐含地改变
typedef
用以给数据类型取别名,当然也有别的作用
extern
声明变量是在其他文件中声明(也可以看作是引用变量)
return
子程序返回语句(可带参数也可不带参数)
void
声明函数无返回值或者无参数,声明空类型指针
continue
结束当前循环,进入下一轮循环
do
循环语句的循环体
while
循环语句的循环条件
if
条件语句
else
条件语句否定分支
for
一种循环语句
goto
无条件跳转语句
sizeof
计算对象所占内存空间大小
定义与声明
定义:编译器创建一个对象,为该对象分配一块内存并为之取一个名字
声明:1.告诉编译器这个名字已经分配上内存了2.告诉编译器,这个名字已经被预定了,不得重名。
int i;//定义
extern int i;//声明
register
这个关键字就是让变量存在寄存器中
注意点:
register修饰的变量必须是CPU所能接受的类型,就是该变量必须是单个值且小于等于整型长度(想想汇编就明白了)
由于该变量不存在内存,所以不能用&取地址
static
修饰变量
变量又分局部变量与全局变量
1.静态全局变量:
作用域仅限于变量被定义的文件中,其他文件即使用extern声明也无法使用
2.静态局部变量:
在函数体中定义,只能在该函数中使用,当让这个静态变量即使函数结束也不会被销毁
修饰函数
静态函数:对函数的作用域仅限与本文件(内部函数)
好处:不同的人编译不同的函数时,不用担心自己定义的函数是否与其他文件中的函数同名
sizeof
int i;
sizeif i;
此时得到的值是多少?4,即使sizeof不叫括号也能预算,所以它一定不是函数。
int *p = NULL;
sizeof(p)//地址4
sizeof(*p)//数4
int a[100]
sizeof(a) //数组块 400
sizeof(a[100]) //值,此值随机 4
sizeof(&a) //4
signed\unsigned
int main()
{
signed char a[1000];
int i;
for(i=0;i<1000;i++)
{
a[i] = -1-i;
}
printf("%d",strlen(a));
return 0;
}
得到的为255
为什么,补码问题,后面会详细解释
void
其作用:对函数返回的限定,对函数参数的限定 1.如果函数没有返回值,那么应将其声明为void类型 2.如果函数无参数,那么应声明其参数为void 3.在使用void*指针的时候,一定要用限定类型再操作 4.void声明的是一种抽象哦