当前位置:网站首页>C语言概念知识扫盲(不定期补充更新)
C语言概念知识扫盲(不定期补充更新)
2022-06-22 05:03:00 【姜学迁】
程序 = 数据结构 + 算法
程序:一组计算机能识别和执行的指令,每一条指令使计算机执行特定的操作。一个程序由一个或多个源程序文件组成。程序最根本的功能是对数据的处理,还需要对数据处理的过程进行控制。
数据结构:对数据的描述,在程序中要指定用到哪些数据,以及这些数据的类型和数据的组织形式。
算法:对操作的描述,要求计算机进行操作的步骤。
有效算法的特点(判断算法有效的条件):
- 有穷性: 一个算法应包含有限的操作步骤,而不能是无限的。
- 确定性: 算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的。
- 有零个或多个输入: 输入是指在执行算法时需要从外界取得必要的信息。
- 有一个或多个输出: 算法的目的是为了求解,输出就是解。
- 有效性: 算法中的每一个步骤都应当能有效的执行,并得到确定的结果。
结构化算法:由三种基本控制结构组成的算法结构。
程序的三种基本控制结构:顺序结构、分支结构、循环结构。
结构化程序:用计算机语言表示的结构化算法。
结构化程序设计方法:
- 自顶向下
- 逐步细化
- 模块化设计
- 结构化编程
语言
机器指令:计算机能直接识别和接受的二进制代码。
机器语言:机器指令的集合。
汇编程序:一种把符号语言(汇编语言)的指令转换为机器指令的软件。
编译程序(编译器):一种把高级语言写的程序(源程序)转换为机器指令的程序(目标程序)的软件。
编译:利用编译程序从源程序产生目标程序的过程。
可执行程序:程序编译后经过(连接编辑程序)处理生成的一个可供计算机执行的目标程序。
程序与源程序:一个程序由一个或多个源程序文件组成。一个源程序文件由一个或多个函数以及其他有关内容(如指令、数据声明与定义等)组成。一个源程序文件是一个编译单位,在程序编译时是以源程序文件为单位进行编译的,而不是以函数为单位进行编译的。
函数
函数:函数就是功能,每一个函数用来实现一个特定的功能,函数的名字应该反映其代表的功能。函数是C程序的主要组成部分,是C语言的一种子程序。主函数也是函数之一。
函数声明的作用:函数声明的作用是把有关函数的信息(函数名、函数类型、函数参数的个数与类型)通知编译系统,以便在遇到函数调用时,编译系统能正确识别函数并检查调用是否合法。
实参和形参:在函数调用时,实参变量将它的值传递给形参变量(值传递),实参和形参在内存中占有不同的存储单元,函数调用结束后,形参存储空间被释放。由于单向值传递的特性,形参值的改变不能使实参的值随之改变。
语句
语句:语句是程序最基本的执行单位,程序的功能就是通过执行一系列语句来实现的。
标识符:一些用来对变量、符号常量名、函数、数据类型等命名的有效字符序列,简单地说,标识符就是一个对象的名字。由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。
if-else语句:C语言只有 if-else 分支语句,而没有 if-(else if)-else 这种形式。一般我们使用的 else if 实质上是在 else 里嵌套了一个 if 。if 与紧跟其后的 else 处于同一级别。
数据
常量:在程序运行过程中,其值不能被改变的量。
变量:在程序运行过程中,其值可以改变的量。
循环控制变量:通过改变和判断某个变量的值来控制循环的执行,这样的变量被称为循环控制变量。
常变量:在定义变量时,前面加一个关键字 const,在变量存在期间其值不能改变。
符号常量:使用#define指令,指定用一个符号名称代表一个常量,称为符号常量。在预编译后,符号常量会全部变成字面常量。
全局声明:即在函数之外进行的数据声明。
全局变量:在函数外面定义声明的变量称为全局变量。在整个源程序文件范围内有效。约定俗成,全局变量名的第一个字母用大写表示。全局变量不赋初值则系统自动赋值为 0。
局部变量:在函数中定义声明的变量是局部变量,只在函数范围内有效。局部变量不赋初值会报错。
作用域:如果一个变量在某个文件或函数范围内是有效的,就称该范围为该变量的作用域。
数据类型:所谓类型,就是对数据分配存储单元的安排,包括存储单元的长度(占多少字节)以及数据的存储形式,不同的类型分配不同的长度和存储形式。
数组:一组有序数据的集合,数组中的每一个元素都属于同一种数据类型。数组名代表着该数组第一个元素的地址,或者说数组的起始地址。
字符数组:C语言没有字符串类型,也没有字符串变量,字符串是存放在字符型数组中的。用来存放字符数据的数组是字符数组。由于字符型数据是以整数形式(ASCII码)存放的,因此也可以用整型数组来存放字符数据,这么做虽然合法但会浪费存储空间。
字符串:字符串不是变量,而是一个常量。在C语言中只有字符变量,没有字符串变量。
结构体:由不同类型数据组成的组合型数据结构。
声明与定义:把建立存储空间的声明称定义,把不需要建立存储空间的声明称为声明(或引用)。所谓声明,其作用是表明该变量是一个已在其他地方定义过的变量,仅仅是为了扩展该变量的作用范围而作的“声明”。
运算
运算符:运算符表示对各种数据类型数据对象的运算。
表达式:运算符与运算对象(可以是常量、函数、变量等)的有意义组合就形成了表达式。
算术表达式:用算术运算符和括号将运算对象(操作数)连接起来的,符合编程语言语法规则的式子称为算数表达式。
关系表达式:用关系运算符将两个数值或数值表达式连接起来的式子,称为关系表达式。关系表达式的值是一个逻辑值,只有两种结果即“真”与“假”,在C语言的逻辑运算中,以数值1代表真,以数值0代表假。
逻辑表达式:用逻辑运算符将关系表达式或其他逻辑量连接起来的式子就是逻辑表达式。逻辑表达式只有两种结果即“真”与“假”,在C语言的逻辑运算中,以数值1代表真,以数值0代表假。
左值:左值的意思是它可以出现在赋值运算符左侧,它的值是可以改变的。并不是任何形式的数据都可以作为左值,左值应当为存储空间并可以被赋值。
右值:能出现在赋值运算符右侧的表达式称为右值。左值也可以出现在赋值运算符右侧,因而凡是左值都可以作为右值。
关系运算符及其优先次序:
- <, <=, >, >= 的优先级别相同,== 与 != 的优先级别相同。但前四种的优先级高于后两种。
- 关系运算符的优先级低于算术运算符( +, -, *, /, % )。
- 关系运算符的优先级高于赋值运算符( = )。
逻辑运算符及其优先次序:
- !(非)大于 &&(与)大于 ||(或)。
- && 和 || 低于关系运算符,! 高于算术运算符。
边栏推荐
- go学习(一、基础语法)
- MySQL notes
- ORA-15063: ASM discovered an insufficient number of disks for diskgroup 恢複---惜分飛
- JUC - thread interrupt and thread waiting and wakeup (locksupport)
- What is cloud hosting and what are its advantages?
- [fault diagnosis] cv2 Imwrite cannot write the picture, but the program does not report an error
- Flynk deployment mode summary
- 软考2022年下半年考试科目安排
- Chapter 6 infinite series_ Fourier series
- [sdx12] use qcmap_ CLI startup WiFi operation instructions
猜你喜欢

【故障诊断】stitch.py脚本失效

QT save qtextedit memory to Txt file
![[camp] at the beginning, improve [leopard] power - vivo activity plug-in management platform](/img/75/6a129de59c21b783622ba31f77f647.jpg)
[camp] at the beginning, improve [leopard] power - vivo activity plug-in management platform

使用matplotlib实现GUI交互效果

Using Matplotlib to realize GUI interaction effect

Redis master-slave replication

守护进程的流程

Disturbed when programmers are programming? Daily anecdotes

Golang concise architecture practice

中闽在线:以“积分”为纽带 共享线上渠道资源
随机推荐
zipimport. ZipImportError:
[scientific research notes] about using the downsampling multiple of openslide cut
Postman uses (reads) JSON files for batch testing
Importbeandefinitionregistrar registers beans with the container
MySQL day02 class notes
加快推进工业互联网,图扑“智”绘发展新蓝图
What is cloud hosting and what are its advantages?
图扑软件2D与2.5D案例合集|智慧园区、数据中心、SMT 生产线...
9. Gateway cross domain processing
mysql day03课堂笔记
【故障诊断】stitch.py脚本失效
Browser -- a collection of common search operators -- use / instance
[user guide] use of Tsinghua source
Reading notes on how MySQL works [updating]
How much is London gold
requests cookie更新值
守护进程的流程
The feeling of leaving full-time for a single month!
Concurrent programming - thread pool
IDP depth | what kind of data analysis and mining tools do enterprises need?