Day 2 学习C语言

C语言基本数据类型及关键字

1、基本数据类型

类型长度(字节大小)描述范围
int4byte整形-32768~32767
short2byte短整型-32768~32767
long4byte长整型-214783648~-214783647
char1byte字符型C字符集
float4byte单精度浮点型10-38~1038
double8byte双精度浮点型10-308~10-308
bool1byte布尔型true,false(1,0)

2、关键字

charunsignedswitchtypedeflongbreak
externdoublevoidcasevolatileenum
shortforcontinuedefaultregistersigned
ifstaticconstintwhileauto
uniongotosizeofelsedoreturn
structlong

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博客

register关键字详解-CSDN博客

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值