初识C语言(4)

简介: 初识C语言(4)

11、常见关键字

1.C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,具有特定含义、专门用作特定用途的C语言标识符,也称保留字,用户自己是不能创造关键字的。 标准C语言中共有32个关键字。

2.分类

(1)数据类型关键字:char(字符型),int(整形),double(双精度浮点型),float(单精度浮点型),short(短整型),signed(有符号的),unsigned(无符号的),long(长型),struct(结构体类型),union(共用体类型),enum(枚举类型),void,

(2)存储类型关键字:auto,static,register(寄存器),extern(声明外部符号)

(3)其它关键字:const(修饰常变量),sizeof(计算类型或变量所占内存空间的大小),volatile,typedef(类型重命名)

(4)控制语句关键字:break,continue,if,else,switch,case,default,goto,do,while,for,return(返回)

3.补充

(1)特定字-就是特殊含义的标识符,虽然不是关键字,但习惯上把他们看成关键字。有:

define,endif,line,include等

(2)标识符


           用途:所谓标识符就是用来标识在C语言中出现的符号常量、变量、数据类型、函数和语句的字符序列。

           定义:C语言规定,标识符由字母、数字、下划线组成,且第一个字符不能使用数字字符。


       标识符需注意以下几点:

1、标识符的有效长度随系统而异,建议标识符不要超过8个字符。如student_num

2、标识符命名的良好习惯——见名知意。如:name(姓名)、age(年龄)

3、C语言的关键字和特定字不能用作用户自定义的标识符。

4、C语言区分大小写。如Name和name是不同的标识符

5、C语言有许多库函数,尽量不要与库函数同名

先介绍以下几个关键字,后期遇到讲解。

11.1 关键字 typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。


11.2 关键字static

在 C 语言中:

static 是用来修饰变量和函数的

1. 修饰局部变量 - 称为静态局部变量

2. 修饰全局变量 - 称为静态全局变量

3. 修饰函数 - 称为静态函数

11.2.1修饰局部变量


如上,我们可知:

1、内存图


2、


(1)普通的局部变量是放在栈区上的,这种局部变量进入作用域创建,出了作用域释放。         (2)但是局部变量被static修饰后,这种变量就放在静态区,放在静态区的变量,创建好后,直到程序结束才释放。

(3)本质上:static的修改改变了局部变量的存储位置,因为存储位置的差异,使得执行效果不一样。


注意:被static修饰是不影响作用域的!!!但是生命周期发生了变化,变长了。


11.2.2static修饰的全局变量



从上机实践中我们发现:


(1)全局变量本身是具有外部链接属性的,在A文件中定义的变量,在B文件中可以通过[链接]使用(extern-声明外部符号)


(2)但是如果全局变量被static修饰,这个外部链接属性就变成了内部链接属性,这个全局变量只能在自己所在的源文件内部使用


(3)static的修饰,会把外部链接属性变成内部链接属性,最终使得全局变量的作用域变小了

11.2.3修饰函数


从截图我们可知:


(1)函数本身是具有外部链接属性的


(2) 函数被static修饰后,外部链接属性就变成了内部链接属性,使得这个函数只能在自己所在的源文件内部使用,其他源文件无法使用(限制 了作用域)


总结:


(1)局部没有链接,全局才有链接


(2)static修饰局部变量不影响作用域!!!但是生命周期变长了


(3)static修饰全局变量和函数,限制的是作用域


(4)函数没有生命周期,他只是一个代码

#include“add.c”??(不建议)

头文件:

类型的定义

头文件的包含

函数的声明

11.3关键字register-寄存器

register-寄存器

计算机上,数据都可以存储在哪里?


注意:register只是建议的作用,会不会放在寄存器,编译器决定

12.#define定义常量和宏

1.#define定义符号常量(也叫标识符常量)

格式:#define 常量名 字面常量

2.#define定义宏

格式:#define 宏(形参) 宏体

补充:宏VS函数


(1)函数的形参有类型

(2)函数有{},

(3)宏一般就处理非常简单的逻辑




相关文章
|
5月前
|
存储 编译器 Linux
【C语言】初识C语言
【C语言】初识C语言
43 0
|
5月前
|
C语言
C语言中%c,%d,%x,%f,%4.2f分别是什么
C语言中%c,%d,%x,%f,%4.2f分别是什么
|
5月前
|
存储 编译器 C语言
C语言:练习4
C语言:练习4
67 3
C语言:练习4
|
编译器 C语言 C++
初识c语言
一个程序运行起来如果报错或者结果是上一次运行程序的结果那么就是你写的程序有问题,可以用cursor这个编码chatgpt这个软件看一下那里出现的问题,但是要保证自己的代码是完整的我们在vs2022中要创建的源文件,头文件是用来存放自定义函数的。因为我们学习的是c语言所以我们创建的文件的以.c结尾的,不能是.cpp,因为c语言的语法规则和c++的语法规则不一样,要不然写出来的程序会报错。printf()函数在程序的函数体内实现,printf(“”)是负责打印(“”)里面的字符。scanf()函数的使用。
|
5月前
|
C语言 C++
C语言集106-111
C语言集106-111
|
11月前
|
存储 程序员 编译器
初识C语言(4)
初识C语言(4)
79 0
|
C语言
C语言之宏详解(超级详细!)
C语言之宏详解(超级详细!)
|
12月前
|
程序员 编译器 数据库
什么是C语言
C语言是一种通用的高级编程语言,由美国计算机科学家丹尼斯·里奇(Dennis Ritchie)在20世纪70年代初开发。C语言以其简洁、高效和可移植性而闻名,成为了许多计算机系统和应用程序的首选编程语言
114 0
|
存储 Java 编译器
初识C语言(一)
初识C语言(一)
|
存储 C语言
初识C语言(3)
初识C语言(3)