初识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)宏一般就处理非常简单的逻辑




相关文章
|
10月前
|
C语言
C语言练习5
C语言练习5。
43 2
|
10月前
|
C语言
【C语言】exit函数详解
【C语言】exit函数详解
2743 0
|
3月前
|
传感器 安全 算法
【C语言】C语言可以做什么?
C语言因其高效、灵活和低级控制能力,被广泛应用于各个领域,从基础设施和科学计算到金融、交通和机器人技术。它在许多关键应用中展示了其不可替代的价值和广泛的适用性。
202 2
|
5月前
|
存储 机器学习/深度学习 编译器
一篇文章,把你的C语言拉满绩点
一篇文章,把你的C语言拉满绩点
28 0
|
6月前
|
编译器 C语言 C++
从C语言到C++
本文档详细介绍了C++相较于C语言的一些改进和新特性,包括类型检查、逻辑类型 `bool`、枚举类型、可赋值的表达式等。同时,文档还讲解了C++中的标准输入输出流 `cin` 和 `cout` 的使用方法及格式化输出技巧。此外,还介绍了函数重载、运算符重载、默认参数等高级特性,并探讨了引用的概念及其应用,包括常引用和引用的本质分析。以下是简要概述: 本文档适合有一定C语言基础的学习者深入了解C++的新特性及其应用。
|
10月前
|
C语言 C++
初识C语言
该内容介绍了编程中的主函数(main函数)概念,展示了一个简单的C++程序示例,包括一个只包含`return 0;`的主函数和另一个打印"hehe"的主函数。强调在同一个工程中只能有一个main函数,但可以有多个.c源文件。
47 1
|
10月前
|
自然语言处理 算法 Linux
C语言:深入探索与实际应用
C语言,作为计算机科学基石,以其通用性、过程式编程和底层访问能力在系统编程、嵌入式开发等领域广泛应用。其支持结构化编程、变量作用域和递归,提供高效代码编写方式。数据类型(如整型、浮点型、字符型)、控制结构(如if-else、循环)、函数和指针是C语言的关键特性。指针允许直接操作内存,增强了灵活性。C语言在操作系统(如Linux内核)、嵌入式系统、游戏开发及数据结构与算法实现中扮演重要角色,是理解和学习其他编程语言的基础。通过深入学习C语言,开发者可以提升技能,适应各种编程挑战。
|
10月前
|
安全 算法 网络安全
C语言在安全领域的应用
本文探讨了C语言在网络安全中的应用,包括密码学算法实现、网络安全工具开发和安全协议实现。C语言因其高效性、可控性和跨平台性,常用于实现AES、RSA等加密算法,开发网络扫描器和入侵检测系统,以及实现SSL/TLS、IPSec等安全协议。代码示例展示了C语言如何进行AES加密解密。尽管C语言在安全领域有显著优势,但面对不断演变的威胁,持续学习和研究新的安全技术至关重要。
|
存储 编译器 C语言
你应该知道的C语言干货(1)
小数直接写出来编译器默认为double类型,后面加上f才是float类型
101 0
|
C语言
C语言中的坑(1)
C语言中的坑(1)
65 0