小盆友,你是否有很多问号???

C语言的关键字是什么?有哪些?他们如何用???

我也在学习中迷惑着,所以把今天学习到的稍微做一下总结,方便自己以后的复习(目前学到的比较粗浅,以后还需要深入学习)。

哪里有不对的还希望各位大佬不吝赐教,谢谢!

1、什么是C语言的关键字呢?

举个例子,我们学习中文的时候要学习汉字,学习英语的时候需要学习单词,先学习这些基本词汇,才能造句,才能写文章。相同的,作为一门编程语言,学习C语言时,就要先学习它的基本词汇(C语言的关键词),然后用其组成语句,再编写可以运行的程序。

2、C语言的关键词有哪些呢?

C语言(C99版)的标准规定的关键字有32个,分别是:

auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while

啊啊啊~这么多关键字都是什么意思呀??

好吧,因为我的English也是非常的poor,所以刚开始看到这些关键词也会一脸懵B。现在才慢慢了解了一些。

3、C语言的关键字的意思和用法?

auto :声明自动存储变量(一般省略)

break:跳出所在的局部语句(通常用在循环语句和开关语句中)

case:与switch、default搭配使用在switch语句中

char:声明数据类型——字符型

const:用于修饰变量,使其具有常属性,但本身仍然是一个变量

                     

可以看出,本来变量i是可以直接被赋值的,加了const之后,不能直接被赋值了,所以具有了常属性;

创建数组时,用到了const修饰的i,结果报错中显示应输入常量表达式,证明i虽然被const修饰,但其仍然是一个变量。

continue:中断本次循环,并转向下一次循环

default:在switch语句中,代表默认处理

do:搭配while,形成do while循环语句,该循环语句的循环体

double:声明数据类型——双精度浮点型

else:搭配if,形成if else条件语句

enum:声明枚举类型(此处对枚举、段位和联合的对比:https://mp.csdn.net/console/editor/html/83314674)

extren:声明外部变量和符号

             

可以看出,如果需要调用其他源文件中的变量或函数时,就需要在当前源文件中用extern对其进行声明。

float:声明数据类型——浮点型

for:形成for循环语句

goto:形成goto语句,无条件跳转

if:搭配else,形成if else条件语句

int:声明数据类型——整型

long:声明数据类型——长整型

register:声明寄存器变量

该关键词建议将声明的变量放在寄存器中,方便使用。但是实际是否是寄存器变量需要编译器决定。不能对该变量进行&操作。因为&操作取的是内存的地址,而寄存器是独立于内存放置在CPU上的,无地址)

return:返回函数的返回值

short:声明数据类型——短整型

signed:声明有符号类型

sizeof:计算数据类型、变量或表达式所占字节数

(sizeof以及strlen的比较见链接:https://mp.csdn.net/console/editor/html/83241901)

static:声明静态变量

static声明的局部变量,改变了其生命周期(由局部变为整个程序(变长),在编译期间就开始创建),但作用域不变。

         

上图中的变量 j 未被static修饰前,其从test()中出来时即生命周期结束,下一个循环中重新创建;当被static修饰后,其生命周期延长至整个程序的结束,作用域仍仅限与test()中。

static声明的全局变量,改变了其作用域(由整个工程变为当前源文件(变小)),但生命周期不变。

        

可以看到,work.c中的变量year被static修饰后,在test.c中无法调用。所以其作用域变为仅在其所在的源文件中,但是变量year仍然是全局变量,所以其生命周期未改变。

全局变量和静态变量都存储在静态区;

函数和全局变量都具有外部链接属性,可以被当前源文件之外的源文件调用和使用,但是用static修饰之后,仅具有内部链接属性了。而局部变量无连接属性。

struct:声明结构体类型(与上述枚举进行过对比)

switch:搭配case和fault使用,构成switch语句

typedef:类型重定义/命名(eg:typedef unsiged int uint)unsiged int等于uint

union:声明联合类型(与上述枚举、和结构体进行过对比)

unsigned:声明无符号类型

void:定义无类型

volatile:保存内存可见性(该变量在程序中执行中可被隐含地改变)

             

在C语言中,对const修饰的常变量可通过地址对该变量的值进行修改。

但是,在C++中因为该变量被const修饰,所以编译器认为该变量的值不会被修改,所以将该变量的及其值备份后,在寄存器中放了一份。所以通过地址将该变量改变后,不会在运行结果中体现。

当C++中,对该常变量加上关键词volatile,可以让编译器每次访问内存中的该变量,而不是访问寄存器中的备份。所以,对通过地址对其修改后运行结果会发生改变。

while:搭配do使用,构成do while语句

好啦,算是大概对C语言的关键词大概浅显的梳理了一下,希望各位大佬不吝赐教哈。

对C语言的关键字及部分关键字用法的简单理解相关推荐

  1. 016+limou+C语言常用的32个关键字

    0.前言 本博文是在对C语言有一定深入了解后,对C语言最为主要的32个关键字进行了简要的概述和一些容易被忽略的细节研究,您可以当作学习或复习C语言基础使用(毕竟关键字就是构成C语言语法的基石),也可以 ...

  2. c语言关键字_C语言初学者必须掌握的关键字!

    相信这么努力的你 已经星标了我 老九学堂 你身边的IT导师 其实小伙伴在写代码的时候,关键字还是用的比较多的,  今天大雄主要就平常中用到的常用关键字进行总结,便于小伙伴们更全面的理解其在代码中的意图 ...

  3. C语言再学习 -- 存储类型关键字

    定义: 是对声明的实现或者实例化.连接器(linker)需要它(定义)来引用内存实体.与上面的声明相应的定义如下:参看:C语言再学习 -- 存储类.链接 C语言中有 5 个作为存储类说明符的关键字,分 ...

  4. js与c语言效率_JavaScript控制流及关键字与C语言之比较

    学习JavaScript控制流及关键字概念前,对有过C语言学习经验的同学来说,那么关键字,控制语句概念并不陌生.我们先来看看C语言吧: C语言的32个关键字和9种控制语句 9种控制语句: if.if- ...

  5. python语言中不用来定义函数的关键字_Python 语言中用来定义函数的关键字是

    Python 语言中用来定义函数的关键字是 答:def 调查问卷采集是数据采集人员通过设计具有针对性的问卷,采用方式进行信息采集 答:以上都是 中国大学MOOC: 突出重点,必须以解决问题为目标.也就 ...

  6. java异常处理机简答题,【简答题】JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,finally 分别代表什么意义?...

    [简答题]JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,finally 分别代表什么意义? 更多相关问题 用蒸汽进行设备管线吹扫时,应将被吹扫的设备管线,相应 ...

  7. (1)c语言学习总结之从关键字到循环结构

    一.关键字和标示符 1.关键字:c规定的有特殊含义的单词(也就是系统起的名字),全部是小写,有32个; 由关键字引出数据类型和流程类型 1.分类: (1)数据类型:整型用int标示,字符型用char表 ...

  8. C语言——变量篇(一)变量关键字static、auto、extern、register

    前言:笔者最近在看C语言时候遇到了一堆关键字,auto,static,extern,register等等.看上去头皮发麻,在这里整理一下,便于自己理解. 全局变量和局部变量 关于全局变量和局部变量,笔 ...

  9. 【C语言你真的学会了吗】C语言深度剖析(1)【关键字深度剖析】

    目标: 初步了解关键字分类 深刻理解变量 深刻理解定义与声明 auto关键字的理解 站在存储结构角度,理解register关键字 目录 1.关键字分类 2.第一个C程序(补充内容) 3.变量的定义和声 ...

最新文章

  1. java反射的性能_java反射的性能问题
  2. 在if里赋值要注意=和==的优先级,==优先于=
  3. [LeetCode] Valid Anagram - 字符串排序比较系列
  4. python 持续集成工具_持续集成工具: Jenkins学习
  5. linux 打zip gz tar,linux把文件压缩成.tar.gz的命令 | PT Ubuntu Blog
  6. 如何在 OS X Yosemite 中安装 Java
  7. 转一个高内存定位的文章
  8. 计算机视觉工作项目方案设计,机器视觉(项目方案设计案例)47.pdf
  9. Android万能使用WebServices(不用引入外部包)
  10. 操作系统动态分区分配方式C/C++语言(首次适应算法(FF)循环首次适应算法(NF)最best适应算法(BF)最坏适应算法(WF))
  11. U盘文件数据恢复工具如何使用
  12. 基于ROS的机器人设计
  13. Control.DataBinding数据绑定细解
  14. VScode 直接运行ts文件
  15. 一款好用的应用程序打包工具
  16. 可以运行python的路由器_用python控制你的路由器
  17. 王兴是怎么看待共享单车这块业务的
  18. 万字长文简单明了的介绍xxl-job以及quartz
  19. android电量百分比,Android P 状态栏显示电量百分比
  20. 跨网络加密软件部署办法--动态域名NAT

热门文章

  1. ERP软件定制开发需注意哪些问题?ERP定制开发要多长时间?
  2. PXE-MOF:EXITING INTEL PXE ROM是什么意思
  3. 【转载】新韭菜日记22----20190304股市学习--帖子是转载的,持续学习
  4. android原生见缝插针游戏自定义控件源码
  5. 用python获取图形对象的坐标集合
  6. Linux ubuntu gtest googletest download compile apply TEST TEST_F TEST_P
  7. 心向天蓝,Python学习第一章之列表一
  8. hosts文件及域名解析过程
  9. 张涵诚对于大数据在旅游业的应用场景分享
  10. Human-Level Control Through Deep Reinforcement Learning论文解读