C语言基本数据类型及关键字
1、基本数据类型
类型 | 长度(字节大小) | 描述 | 范围 |
---|---|---|---|
int | 4byte | 整形 | -32768~32767 |
short | 2byte | 短整型 | -32768~32767 |
long | 4byte | 长整型 | -214783648~-214783647 |
char | 1byte | 字符型 | C字符集 |
float | 4byte | 单精度浮点型 | 10-38~1038 |
double | 8byte | 双精度浮点型 | 10-308~10-308 |
bool | 1byte | 布尔型 | true,false(1,0) |
2、关键字
char | unsigned | switch | typedef | long | break |
---|---|---|---|---|---|
extern | double | void | case | volatile | enum |
short | for | continue | default | register | signed |
if | static | const | int | while | auto |
union | goto | sizeof | else | do | return |
struct | long |
ps:由ANSI标准定义的C语言关键字共32个,可以分为两大类:数据类型关键字 和 流程控制关键字。具体如下:
1、数据类型关键字:
(1)基本数据类型(5个):
-
void (空类型):声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果 ;
-
char:字符型类型数据,属于整型数据的一种;
-
int:整型数据,通常为编译器指定的机器字长;
-
float:单精度浮点型数据,属于浮点数据的一种;
-
double:双精度浮点型数据,属于浮点数据的一种。
(2)修饰类型(4个):
-
short:修饰int,短整型数据,可省略被修饰的int ;
-
long:修饰int,长整形数据,可省略被修饰的int ;
-
signed:修饰整型数据,有符号数据类型;
-
unsigned:修饰整型数据,无符号数据类型。
(3)构造类型(3个):
-
struct:结构体声明;
-
union:共用体声明;
-
enum:枚举声明。
(4)数据存储类型(6个):
-
auto:指定为自动变量,由编译器自动分配及释放,通常在栈上分配 ;
-
static:指定为静态变量,分配再静态变量区,修饰函数时,指定函数作用域为文件内部;
-
extern:指定对应变量为外部变量,即在另外的目标文件中定义,可以认为是约定由另外文件声明;
-
const:指定对应常量或变量为只读,确保程序中数据不被随意修改,提高了程序的健壮性和可读性,与volatile合称“cv”特性: 1)用const修饰常量:定义时就初始化,以后不能更改; 2)用const修饰形参:func(const int a){}:该形参在函数里不能改变; 3)用const修饰类成员函数:该函数对成员变量只能进行只读操作,就是const类成员函数是不能修改成员变量的数值的。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。
#一个经典例子:
1.const int a; 2.int const a; 3.const int *a; 4.int * const a; 5.int const * a const;
前两个a都是常整型,而第三个a是指向常整型数的指针(指针指向的整型数不可修改,指针可以),第四个a是指向整型数的常指针(指针不可修改,指针指向的整形数可以),第五个a则是指向常整型数的常指针(指针和指针指向的整型数都不可修改);
-
volatile:指定对应常量不会被编译器进行任何优化修饰,每次访问该变量时都要直接从原始内存地址读取,即使编译器认为最近的访问应该已经给出了相同的值。这对于那些可能被外部实体(如硬件设备、中断服务程序)修改的变量至关重要,确保程序能够看到这些变化。与const合称“cv"特性。
-
register:指定的变量在被频繁调用时会被建议保存到寄存器里,可以提升访问变量的速度。
注意事项:1)变量必须是能被cpu所接受的类型;
2)因为regsiter变量可能不存放在内存中,因为只是建议将该变量保存在寄存 n器,并不是强制性的,所以不能用“&”来获取regsiter变量的地址;
3)局部静态变量不能定义为寄存器变量;
4)不能定义任意多个寄存器变。
2、流程控制关键字
(1)跳转结构(4个):
-
return:用在函数体中,返回特定值或者是void值(即不返回值);
-
continue:结束当前循环,进行下一轮循环;
-
break:跳出当前循环或switch结构;
-
goto: 无条件跳转语句。
(2)分支结构(5个):
-
if:条件语句;
-
else:条件语句否定分支,与if连用;
-
switch:多重分支语句(开关语句);
-
case:switch中的分支标记;
-
default:switch中的”其他''分支,当前面的条件分支标记都不被选择时默认选择。
(3)循环结构(3个):
-
for:for循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件
-
do:do循环结构,do 1 while(2);的执行顺序是1->2->1...循环,2为循环条件
-
while:while循环结构,while(1) 2;的执行顺序是1->2->1...循环,1为循环条
以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。
相关链接:
C语言中32个关键字详解_ansi c32个关键字的意思-CSDN博客
C语言中static、const、volatile关键字总结_在c语言中static,const,volatile的作用和用法-CSDN博客