C语言理论知识
C语言-----理论部分
一:软件开发概述
1.程序语言的发展:机器语言-->汇编语言-->高级语言。
2.软件开发的基本步骤与方法:分析问题,建立数学模型-->确定数据结构和算法-->编制程序-->调试程序。
3.算法的基本特征:有穷性 确定性 有效性 有零个或多个输入 有一个或多个输出。
4.编码实现:源代码 编译源代码 链接 。
5.调试程序:语法/逻辑/开发/运行时错误。
6.程序通过编译或解释的方法来执行的。
二:汇编语言概述
1.基本组成:字符集 标识符 关键字 语句 标准函数库。
2.C程序的上机执行过程一般的步骤:编辑 编译 链接 运行。
三:数据存储于输入输出
1.数据在计算机中的表现形式:用字节位中的最高位来表示正号、负号(称为符号位,
如果符号位为0,则代表正数;如果符号位为1,则代表负数)
1.数值的分类:
整型: short 占两个字节;
int 占四个字节;
long 占四个字节;
浮点型: float 占四个字节;
double 占八个字节;
long double 占12个字节;
2.符号常量:形式————#define 标识符 常量 (标识符一般用大写字母表示)。
3.变量三要素:数据类型 变量名 初始值。
4.格式化输出函数printf:
%d 整数; %f 小数; %c 单个字符 %s 字符串
5.格式化输入函数scanf :
&——取址符
6.变量名遵守的规制:
变量名必须以字母字符(从a到z,从A到Z)开头;
也可以是下划线开头,但是不推荐这样做;
在变量名中的任意地方都可使用任何字母、数字或下划线;
变量名长度不限;
变量名不允许出现空格或非字母字符,比如+或-;
变量名不能是C语言的关键字;
变量名对大小写敏感(字母的大小写都有含义,例如myBook并不等同于myBooK)。
四.运算符 表达式 语句
1.取模运算符 %。用于整数运算。
2.++x;--x;x++;x--;相等运算符(==);
不相等运算符(!=);逻辑与(&&);
逻辑或(||);
逻辑非(!)
3.逻辑非运算符“!”优先级最高,其次是算术运算符,
然后是关系运算符,再次是逻辑与运算符“&&”和逻辑或运算符“||”,
最低的是赋值运算符。
4.条件运算符: 表达式1?(表达式2):(表达式3)
5.语句的分类
五.选择结构的程序设计
1.if语句
a:简单if语句
if(表达式){
语句1
}
if-else语句
if(表达式){
语句1
}else {
语句2
}
嵌套的if语句;(三种)
2.switch 语句
形式:
switch (表达式){
case 常量表达式1:语句1 break;
case 常量表达式2: 语句2 break;
....
default :语句n+1
}
3.break 语句出现在switch语句与循环语句中:终止它所在的switch语句或循环语句的执行。
六.循环结构的程序设计
1.循环的基本概念
a:当型循环:先判断 后循环
b:直到型循环: 先循环 后判断。
2.用while语句设计循环结构程序——当型循环。
while(表达式){
循环体语句
}
3.用do-while语句设计循环结构程序(循环体至少执行一次)——直到型循环。
do{
循环体语句
}while(表达式);
4.用for语句设计循环结构程序——当型循环——多用于循环次数明确的问题。
for(表达式1;表达式2;表达式3){
循环体语句
}
表达式1:通常为循环变量赋初值;
表达式2:控制循环体;
表达式3:改变循环变量的值;
5.continue :结束本次循环并开始下一次的循环,只能出现在循环语句的循环体中。
七.数组与字符串
1.数组:按一定顺序排列,具有某种相同性质的同类型变量的集合。
2.一维数组
形式 :数据类型 数组名[整型常量表达式];
数组元素的下标一律从0开始。
一维数组的引用。
一维数组的初始化
形式:数据类型 数组名[整型常量表达式]={初值1,初值2,...};
3.二维数组
形式:数据类型 数组名[整型常量表达式1][整型常量表达式2];
表达式1:相当于x轴; 表达式2:相当于y轴。
二维数组的引用。
二维数组的初始化
形式:数据类型 数组名[整型常量表达式1][整型常量表达式2]={初始值数据};
4.字符数组与字符串
" chian"(为字符串);' '(为字符)
八.复杂数据类型
结构类型:
结构体类型的声明:
struct 结构名{
数据类型1 成员名1;
数据类型2 成员名2;
................
数据类型n 成员名n;
} ; (这里的分号是必须要的)
九.模块化程序设计方法与函数
1.函数的分类
在C语言中的函数分为两类,一类是系统提供的标准函数,又称为库函数。
标准函数由系统定义,在程序中可以直接调用。另一类是用户自己定义的函数。
2. 函数的一般格式:
函数类型 函数名称 (形式参数表){
说明语句列表
可执行语句列表
}
3.从函数的形式上看,函数分为两类:
无参函数:在调用无参函数时,主调函数不将数据传递给被调用函数,无参函数可以带或不带返回值。
有参函数:在调用函数时,在主调函数和被调函数之间有数据传输。
也就是说,主调函数可以将数据传递给被调函数使用,被调函数中的数据也可以带回供主调函数使用。
4.函数的返回值由return语句来执行: return 表达式;
5.函数的调用:一般调用 嵌套调用 递归调用
C语言理论知识的更多相关文章
- 用VC进行COM编程所必须掌握的理论知识
一.为什么要用COM 软件工程发展到今天,从一开始的结构化编程,到面向对象编程,再到现在的COM编程,目标只有一个,就是希望软件能象积方块一样是累起来的,是组装起来的,而不是一点点编出来的.结构化编程 ...
- [转] DDD领域驱动设计(三) 之 理论知识收集汇总
最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一谈起领域驱动设计,就一定认为国外的那个Eric ...
- 关于mpi的理论知识以及编写程序来实现数据积分中的梯形积分法。
几乎所有人的第一个程序是从“hello,world”程序开始学习的 #include "mpi.h" #include <stdio.h> int main(int a ...
- 线程概念( 线程的特点,进程与线程的关系, 线程和python理论知识,线程的创建)
参考博客: https://www.cnblogs.com/xiao987334176/p/9041318.html 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运 ...
- 商业智能BI-基础理论知识总结 ZT
因为要加入一个BI项目,所以最近在研究BI相关的知识体系,由于这个方面的知识都是比较零散,开始都很多概念,不知道从何入手,网上找的资料也不多,特别是实战案例方面更少,这里还是先把理论知识理解下吧,分享 ...
- python 全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python 理论知识,线程的创建)
昨日内容回顾 队列 队列 : 先进先出.数据进程安全 队列实现方式: 管道 + 锁 生产者消费者模型 : 解决数据供需不平衡 管道 双向通信 数据进程不安全 EOFError: 管道是由操作系统进行引 ...
- 学习FPGA过程中的理论知识
学习FPGA,先要有数电知识,最好有点C语言,,学好硬件描述语言,verilog或者vhdl.在有这些基础上,做一些小的模块不断积累.这里不再赘述. 下面介绍一下关于FPGA学习过程中的一些理论知识. ...
- Web前端理论知识记录
Web前端理论知识记录 Elena· 5 个月前 cookies,sessionStorage和localStorage的区别? sessionStorage用于本地存储一个会话(session) ...
- 关于DDD领域驱动设计的理论知识收集汇总
原文:关于DDD领域驱动设计的理论知识收集汇总 最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一 ...
随机推荐
- 对SpringDAO层支持的总结
1.问题 1.JDBC/ORM框架(如Hibernate)开发中编程模型有哪些缺点? 如JDBC 2.解决方案(模板设计模式,本质:将可变的和不可变的分离) 模板方法模式:定义操作的步骤(固定的 ...
- TCP/IP协议族分层
协议族的分层抽象,一定意义上来说,每层敬职敬责的做自己的工作,同时也共同完成通讯协议的共同目标. 这是一个垂直划分的抽象层次,挺有意义. 1.链路层/数据链路层/网络接口层 操作系统中的设备驱动程序和 ...
- 排序算法之堆排序(Heapsort)解析
一.堆排序的优缺点(pros and cons) (还是简单的说说这个,毕竟没有必要浪费时间去理解一个糟糕的的算法) 优点: 堆排序的效率与快排.归并相同,都达到了基于比较的排序算法效率的峰值(时间复 ...
- Asp.net Core 2.1 Kestrel 现在支持 多协议处理(Tcp)
地址:https://github.com/davidfowl/MultiProtocolAspNetCore.git 在一个Kestrel服务上可以同时处理Tcp,Http,Https等多种协议. ...
- windows服务器让WEB通过防火墙的问题
服务器环境:windows server 2012 X64WEB服务器:IIS开放8080,PHPSduty开放80 如果关闭防火墙的情况下,不论是IIS还是安装的其他的WEB服务器,都可以正常访问. ...
- K8S+GitLab-自动化分布式部署ASP.NET Core(三) 更新镜像版本并部署到K8S上
一.介绍 前一篇,介绍了ASP.NET Core部署到K8S上,下面介绍我们在发布新一版本中怎么通过Gitlab CI自动给镜像打版本并部署到K8S上. 二.我们通过GitLab CI/CD 变量 不 ...
- 什么是fortran语言之fortran语言入门
Fortran源自于“公式翻译”(英语:FormulaTranslation)的缩写,是一种编程语言.它是世界上最早出现的计算机高级程序设计语言,广泛应用于科学和工程计算领域.FORTRAN语言以其特 ...
- Godot开发环境与学习资源
记得第一次听到Godot的名字时还在深圳工作,刚刚接触Unity快一年,只是匆匆在Github上star了,就没有继续了.后面时不时翻开它的Git主页,然而一直没有下载过,每每想看看开源引擎都去看Or ...
- LinkedBlockingQueue源码解析(2)
此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 3.3.public void put(E e) throws InterruptedException 原 ...
- 基于duilib的虚拟列表实现
本文由作者邹启文授权网易云社区发布. 在邮箱大师选择duilib作为UI开发库后,我们面临这样一个问题.随着时间的积累,用户数据会越来越多,如何保证我们的软件在展示这些数据时依然保持非常好的体验? 原 ...