C语言从入门到精通(第5版)-----读书笔记

第一章 C语言概述

1.1 C语言的发展史

1.1.1程序语言简述

1、机器语言

        低级语言,又称二进制代码语言。一种使用0、1表示的二进制代码编写指令以执行计算机操作的语言。

特点:计算机可以直接识别,不需要进行任何翻译。

2、汇编语言

        为了减轻开发者使用二进制代码编程的痛苦,用英文字母或符号串来代替机器语言的二进制码,于是把机器语言变成了汇编语言。

        缺点:依赖于计算机硬件,程序的可读性和可移植性都不是很好。

3、高级语言

        由于汇编语言依赖于硬件体系,并且助记符号数量比较多,因此,产生了高级语言。常见高级语言:C、C++、Java等。

1.1.2 C语言的历史

        C语言是一种面向过程的语言,同时具有高级语言和汇编语言的特点,C语言可以应用于不同的操作系统:Linux、Windows稍等

        C语言在BCPL语言(B语言)的基础上发展和完善的,运行在AT&T的多用户、多任务的UNIX操作系统上。

        B语言的创造者:丹尼斯·里奇和肯·汤普逊,11970年研制。

        C语言创造者:丹尼斯·里奇,20世纪70年代初期。

1.2 C语言的特点

1、高效性

代码运行效率高,且具有良好的可读性和编写性。

2、灵活性

3、功能丰富性

4、表达力强

        结构规范。

5、移植性好

        在不同的操作系统下,只需要简单地修改甚至不用修改,即可进行跨平台的程序开发操作。

1.3 一个简单的C程序

分析:

1、第一行

        一个编译预处理命令,声明了在程序编译之前要预先处理的内容。

        作用:声明本段代码已包含标准输入/输出库函数stdio,后续可直接调用,不需要用户再进行定义。

        其中,include称为文件包含命令,尖括号中的内容称为头文件或首文件。

2、第三行

        作用:声明main函数有一个int整型返回值

        函数中,这一部分称为函数头部份。

3、第4~7行

        大括号以及其中的语句块构成了函数体。

        其中,printf格式化输出函数,字符串的输出操作,包含在标准输入/输出库文件stdio中。前面做了包含声明,这里可以直接调用。

        第六行,使main函数终止运行,并向操作系统返回一个整型常量0。0就是要返回的整型值。可以将return语句理解成main函数的结束标志。

一个函数通常分为函数头和函数体两部分。

\n,转义字符,作用是换行。

4、注释

           // 单行注释

          /* 多行注释 */

1.4 一个完整的C程序

情景:计算长方形的体积

        某长方体,某高已经给出,为10。要求从控制台输入长方体的长和宽,通过输入的长、宽以及给定的高度,计算出长方体的体积。

#include<stdio.h>
#define Height 10
int calculate(int Long, int Width);
int main()
{int m_Long;int m_Width;int result;printf("长方形的高度为:%d\n",Height);printf("请输入长度\n");scanf("%d",&m_Long);printf("请输入宽度\n");scanf("%d",&m_Width);result= calculate(m_Long,m_Width);printf("长方体的体积是:");printf("%d\n",result);return 0;
}
int calculate(int Long,int Width)
{int result=Long*Width*Height;return result;
}

分析

1、#define Height 10   

        使用#define定义一个符号常量。设定用符号Height代表数值10。在成功徐编译时,只要遇见Height标识符,就会被替换为数值10。满足高已给条件。

2、int calculate(int Long,int Width);

        作用是对Calculate函数进行声明。在此处声明calculate函数,表示后面将给出calculate函数的具体定义内容。

3、int m_Long;

        定义变量。变量的作用就是存储数值,使得计算机可利用变量进行计算。

4、scanf("%d",&m_Long);

        scanf函数用来接收键盘输入的内容,并将输入的内容保存在相应变量中。在scanf函数的参数中,m_Long是之前定义的整型变量,作用是存储输入的信息内容;&符号是取地址运算符。

5、calculate函数

int calculate(int Long,int Width)
{int result=Long*Width*Height;return result;
}

        calcul函数是用户根据需要自行定义的函数,必须给出具体的函数体。

流程

1.5 C语言程序的格式

        C程序都是从main函数开始执行的,即main函数无论放在什么位置都没有关系。

        若将所有程序代码全部放入main函数中,整个程序的可读性和扩展性将会变得很差。

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/769269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RDMA内核态通信测试krping学习

krping模块是一个内核可加载模块&#xff0c;它实现了客户机/服务器ping/pong程序&#xff0c;这个模块仅仅为了测试内核rdma的API&#xff08;单边的READ和Write&#xff1b;双边的SEND和RECEIVE&#xff09;。该模块允许通过一个名为/proc/krping的/proc条目建立连接并运行pi…

ElasticSearch8 - 基本操作

前言 本文记录 ES 的一些基本操作&#xff0c;就是对官方文档的一些整理&#xff0c;按自己的习惯重新排版&#xff0c;凑合着看。官方的更详细&#xff0c;建议看官方的。 下文以 books 为索引名举例。 新增 添加单个文档 (没有索引会自动创建) POST books/_doc {"n…

服务器总是宕机问题记录

博主介绍&#xff1a; 22届计科专业毕业&#xff0c;来自湖南&#xff0c;主要是在CSDN记录一些自己在Java开发过程中遇到的一些问题&#xff0c;欢迎大家一起讨论学习&#xff0c;也欢迎大家的批评指正。 文章目录 背景调整总结 背景 2核2G的服务器&#xff0c;服务器安装了t…

计算机网络:物理层中的数字传输系统全景概览解析

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

Django之Celery篇(三)

一、任务交给Celery Django任务交给Celery的方法和普通使用Celery任务的调用基本无区别,只是将执行代码的放到到View视图中 而获取结果,往往并不能把结果和第1次请求一起响应,若想获取结果是通过第2次请求获取结果 代码如下: from django.http import HttpResponsefrom …

华为ensp中vrrp虚拟路由器冗余协议 原理及配置命令

CSDN 成就一亿技术人&#xff01; 作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; CSDN 成就一亿技术人&#xff01; ————前言————— VRRP&#xff08;Virtual Router Redundancy Protocol&#xff0c;虚拟路由器冗余协议&#xff0…

[数据集][目标检测]高质量铁路轨道缺陷检测数据集VOC+YOLO格式1050张6类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1050 标注数量(xml文件个数)&#xff1a;1050 标注数量(txt文件个数)&#xff1a;1050 标注…

【机器学习】基于变色龙算法优化的BP神经网络分类预测(SSA-BP)

目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】变色龙优化算法&#xff08;CSA)原理及实现 2.设计与实现 数据集&#xff1a; 数据集样本总数2000 多输入多输出&#xff1a;样本特征24&#xff…

集成学习 | 集成学习思想:Boosting思想 | XGBoost算法、LightGBM算法

目录 一. XGBoost 算法1. XGBoost 算法流程2. XGBoost 算法评价 二. LightGBM 算法2. LightGBM 算法优势 上一篇文章中&#xff0c;我们了解了Boosting思想的两种算法&#xff1a;Adboost和GBDT&#xff1b;其中对于GBDT算法&#xff0c;存在两种改进&#xff0c;即&#xff1a…

javaWeb奶茶商城前后台系统

一、简介 在当前数字化时代&#xff0c;电子商务已成为人们生活中不可或缺的一部分。为了满足用户对奶茶的需求&#xff0c;我设计并实现了一个基于JavaWeb的奶茶商城前后台系统。该系统涵盖了用户前台和管理员后台两大模块&#xff0c;包括登录注册、商品展示、购物车管理、订…

【ARXIV2402】MambaIR

这个工作首次将 Mamba 引入到图像修复任务&#xff0c;关于为什么 Mamba 可以用于图像修复&#xff0c;作者有非常详细的解释&#xff1a;一路向北&#xff1a;性能超越SwinIR&#xff01;MambaIR: 基于Mamba的图像复原基准模型 作者认为Mamba可以理解为RNN和CNN的结合&#xf…

【测试开发学习历程】计算机编程语言

前言&#xff1a; 学习完数据库&#xff0c;我们便要进入到编程语言的内容当中了。 这里先对编程语言写出大致的分类&#xff0c; 在这之后&#xff0c;我们会以Python为重点&#xff0c; 开始测试开发为重点的编程语言学习。 目录 1 计算机编程语言的发展 2 语言的分类…

JAVA 学习记录(1)

1.函数 (1)String.join(";", messages); ";" 表示分隔符&#xff0c;输出的结果&#xff1a; message; (2) Double.parseDouble(valueString); 它返回由字符串参数表示的双精度值。 (3) Double.valueOf((Float) value; float 类型的数值转化为double类…

计数组合【2024蓝桥杯0基础】-学习笔记

文章目录 计数原理排列数组合数组合数性质例题分析代码复现 例题2状态分析代码复现 常见的排列组合问题圆排列代码复现 第二类斯特林数 感悟 计数原理 排列数 组合数 组合数性质 例题分析 代码复现 def ksm(a, b, c):ans 1%cwhile b ! 0:if b % 2 0:ans ans * a %ca a * …

java面向对象编程基础

对象&#xff1a; java程序中的对象&#xff1a; 本质上是一种特殊的数据结构 对象是由类new出来的&#xff0c;有了类就可以创建对象 对象在计算机的执行原理&#xff1a; student s1new student();每次new student(),就是在堆内存中开辟一块内存区域代表一个学生对象s1变…

K3 计划订单投放时,将“关联物料”传递到采购和生产订单的“组部件”字段

参考K/3 WISE 中MRP计算投放过程中 销售订单自定义字段怎么携带到任务单这篇文章&#xff0c;进行优化。 在表ICMrpDestBills下增加触发器&#xff0c;代码如下 CREATE TRIGGER [dbo].[ICMrpDestBills_update]ON [dbo].[ICMrpDestBills]AFTER INSERT,UPDATE AS BEGINSET NO…

查询正在运行的Top SQL的脚本(建议收藏)

这篇文章提供了一些现成的SQL脚本&#xff0c;通过查询V$SQLSTATS视图找到正在运行的TOP SQL&#xff0c;用于后续的优化。建议大家收藏&#xff0c;需要查询TOP SQL时直接复制和粘贴即可。 之前的一篇文章解释了为什么要使用V$SQLSTATS视图。 当数据库表现出各种不同的性能问…

javaSwing推箱子游戏

一、简介 策略性游戏可以锻炼人的思维能力还能缓解人的压力&#xff0c;使人们暂时忘却生活当中的烦恼&#xff0c;增强人们的逻辑思维能力&#xff0c;游戏的艺术美也吸引着越来越多的玩家和厂商&#xff0c;寓教于乐&#xff0c;在放松人们心情的同时还可以活跃双手。在人类…

Docker数据卷与网络模式

华子目录 数据卷注意数据卷操作查看镜像&#xff0c;容器&#xff0c;数据卷所占空间 Docker的网络模式查看指定容器的网络模式bridge模式none模式host模式container模式 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录&#xff0c;它绕过UFS&#xff0c;可以提供很多有…

Open CASCADE学习|显示文本

目录 1、修改代码 Viewer.h&#xff1a; Viewer.cpp&#xff1a; 2、显示文本 OpenCasCade 你好啊 霜吹花落 1、修改代码 在文章《Open CASCADE学习|显示模型》基础上&#xff0c;增加部分代码&#xff0c;实现对文本显示的支持&#xff0c;具体如下&#xff1a; Viewer…