知识分享:C语言知识干货系列——基础篇
yuyutoo 2024-11-21 23:38 2 浏览 0 评论
文章来源:博客园丨 Charmchin
C 语言的特点
C 语言程序设计就是结构化程序设计,它的主要观点是采用自顶向下、逐步细分和模块化的程序设计方法,使用顺序、选择、循环三种基本控制结构来构造程序。
世间万物都有两面性,C 语言既有简洁性、灵活性、高效性等优点,又有如 若标识命名不得体,代码编排不规范,使用了野指针,出现内存泄漏等情况就会使得它原本的优点变成糟糕的缺点。
为何学习C 语言
我们天天使用的操作系统,数据库,游戏引擎等大多都是使用C 语言实现的,还有很多经典算法、框架也是用C语言来编写的。除此之外,在已经进入了“物联网”时代,嵌入式开发已经非常广泛,学好C 语言也是为嵌入式开发打基础的。同时只有当我们懂得了C语言面向过程的结构化程序设计后,当我们在继续学习其他像Java 这样基于面向对象思想的语言时,我们才能更好地真正理解它。
C 语言基础
1,基本数据类型
C 语言里面有不少数据类型,这里先建议大家从最简单的三类基本数据类型开始了解:整型、实型与字符型。
2,常量与变量
从名字上我们就可以看出他们之间是互斥的关系。“常”有恒久的意思,即在C 语言中能够保持恒久不变的量就叫做常量,反之,若其值能够发生变化的量就称为变量。
常见的「常量」有:整型常量、实型常量、字符常量、字符串常量等;「变量」与常量除了其值是否能发生变化之外,两者之间的形态也有所不同。常量通常以值的形式存在,而变量看上去却像一个“容器”。不同类型的变量就像不同大小的“容器”,里面可以放置不同类型和大小的数据。
3,C 语言运算符
什么是运算符呢?当然是能进行相关运算的一些符号啦!就像小学数学里所学到的“+、-、×、÷”四则运算符。C语言中还有大量的运算符,这些运算符若从所需要的操作数个数上看,可分为一目、二目和三目运算符。例如赋值运算符,它需要左右两个操作数,所以它就是二目运算符;对于用作说明一个数是正数还是负数的正号运算符“+”和负号运算符“–”,由于它只需要一个操作数,所以它就是一目运算符!至于三目运算符,就是同时需要三个操作数了。其实C语言中只有一个三目运算符,物以稀为贵,下面就重点说一下~
不过先提醒一句,C语言中的所有运算符都需要使用英文字符,千万不要使用中文的标点符号了(初学者常犯的错误)。
那这个运算符如何使用呢?简单地说就是,根据操作数1 是真是假这个条件,来决定结果是操作数2还是操作数3,二者必选其一。如下例:
4,标准 I/O 函数
一个好的程序应该会将运行的状态和执行的结果以信息的形式告知用户,甚至在某些情况下会要求得到用户的特定信息,这种与程序进行交流的行为就称为交互。
我们把一个程序获取用户的信息称为程序的输入,将信息告知用户称为程序的输出,拥有这种功能的函数就称为I/O函数(Input/Output),即输入/输出函数。如果是通过控制台窗口来完成这些I/O操作的,即为标准I/O函数,C语言中有许多标准I/O函数,其中使用最广泛、功能最强大的是printf函数和scanf函数了。
C 语言流程控制
大家是否记得这样一个经典小品呢?是有关脑筋急转弯的,其中有宋丹丹问赵本山:“把大象装进冰箱需要几步?”。赵本山顿时一懵,答不出来,宋丹丹笑着说:“只需要3 步:第一步打开冰箱门,第二步把大象装进去,第三步把冰箱门关上。” 惹得观众哄堂大笑····
为了简单起见,下面直接通过简单的实例来体会如下3 种结构: 顺序结构、分支结构和循环结构。
1,顺序结构
顺序结构是最简单的一种流程结构,它采用自上而下的方式逐条执行语句。如下:
2,分支结构
C 语言的分支结构可以控制程序的部分流程是否被执行,或是从多条执行路径中选择一条来执行。
用另外一种分支语句(switch...case) 来实现:
3,循环结构
循环结构平常用得比较多,下面就列举循环结构样式:
函数
就跟玩积木一样,一座壮观的城堡是有许多块不同的小积木搭成的,一个大的程序也是由若干个小的子程序构成的,这种以大化小、化整为零的程序设计过程就是模块化,而那一个个模块就是我们这里所说的主角—— 函数。
1,函数的定义
就像变量在使用前是要定义的一样,函数在使用前也是需要定义的。函数的定义格式如下:
关于自定义函数的两个注意点:
在c 语言中,函数是不允许嵌套定义的,即不能在一个函数中定义另外一个函数,所有的函数都是平行关系、平等的地位。但可以在一个函数中调用另外一个函数。
特别需要注意你定义的函数所在的位置,如果函数的定义是在函数调用代码之后我们还要进行函数声明,否则在编译时会报错。
2,函数的分类
从函数的撰写者的角度,可以把函数分为库函数和自定义函数;从有无返回值的角度,可以分为有返回值函数和无返回值函数;而从函数有无参数的角度,还可以把函数分为有参函数和无参函数。
上面说的这些基本就是些简单的概念,写出来的唯一作用就是提醒大家回想一下,加之篇幅限制,所以这里就不在给出具体实例进行分析了~~~
3,递归调用与递归函数
递归调用的原理很简单,就是函数的自身调用。他其实是一种特殊的函数嵌套调用。为了防止死递归的发生,需要有效地控制递归调用,那怎样才能让死递归调用终止呢?那只有依靠我们的老朋友——return 语句了呀~
那下面我们自己编写一个递归函数实现一个求和的小功能吧
4,库函数
如求幂、平方根、三角函数等我们就可以调用c 语言的数学库函数即可,只需要包含一个"math.h" 这个头文件,就可以使用这些和数学有关的函数啦。类似的还有"时间函数"、"随机数函数"、"字符处理函数"(包含“ctype.h"头文件) 等等。
C 标准库中的函数有几百个之多,更多的函数需要我们在编程中自己去学习和研究。毕竟库函数都是大师们的精华之作,经历了千锤百炼,多多熟悉和掌握它们,我们会受益匪浅的 ~ ~
持续分享中······
写在最后:对于准备学习C/C++编程的小伙伴,如果你想更好的提升你的编程核心能力(内功)不妨从现在开始!
编程学习书籍分享:
编程学习视频分享:
整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
对于C/C++感兴趣可以关注小编在后台私信我:【编程交流】一起来学习哦!可以领取一些C/C++的项目学习视频资料哦!已经设置好了关键词自动回复,自动领取就好了!
相关推荐
- TCP协议原理,有这一篇就够了
-
先亮出这篇文章的思维导图:TCP作为传输层的协议,是一个软件工程师素养的体现,也是面试中经常被问到的知识点。在此,我将TCP核心的一些问题梳理了一下,希望能帮到各位。001.能不能说一说TC...
- Win10专业版无线网络老是掉线的问题
-
有一位电脑基地的用户,使用...
- 学习计算机网络需要掌握以下几方面基础知识
-
计算机基础知识操作系统:了解常见操作系统(如Windows、Linux)的基本操作和网络配置,例如如何设置IP地址、子网掩码、网关和DNS服务器等,以及如何通过命令行工具(如ping、tr...
- 网络工程师的圣经!世界级网工手绘268张图让TCP/IP直接通俗易懂
-
要把知识通俗地讲明白,真的不容易。——读者说TCP/IP从字面意义上讲,有人可能会认为TCP/IP是指TCP和IP两种协议。实际生活当中有时候也确实就是这两种协议。然而在很多情况下,它只是...
- 三分钟了解通信知识TCP与IP协议(含“通信技术”资料分享)
-
TCP/IPTCP/IP分层模型①应用层...
- 网闸与防火墙:网络安全设备的差异与应用
-
在网络安全领域,网闸(安全隔离网闸,GAP)和防火墙(Firewall)是两类重要的防护设备。尽管它们都服务于网络安全防护,但在设计理念、技术原理、安全效能及适用场景等方面存在显著差异,以下从五个维度...
- S7-300的TCP/IP通信
-
一、首先在项目中创建2个S7-300的站点;二、硬件组态中,设置合适的TCP/IP地址,在同一网段内;...
- 西门子S7-1500 PLC的 MODBUS TCP通信
-
MODBUSTCP使MODBUS_RTU协议运行于以太网,MODBUSTCP使用TCP/IP和以太网在站点间传送MODBUS报文,MODBUSTCP结合了以太网物理网络和网络标准TC...
- 系统规划与管理师新版备考必备:第7章考点思维导图解析
-
备考系统规划与管理师的小伙伴们,福利又来啦!今天为大家带来《系统规划与管理师(第2版)》第7章考点的思维导图,助你高效梳理重点,让备考更有方向!...
- TCP/IP、Http、Socket 有何区别与联系?
-
HTTP协议对应于应用层,Socket则是对TCP/IP协议的封装和应用(程序员层面上)。HTTP是应用层协议,主要解决如何包装数据。而我们平时说的最多的Socket是什么呢?实际上...
- 西门子PLC串口协议与以太网通信协议对比
-
西门子plc品牌众多,通信协议的类型就更多了,具体可分为串口协议和以太网通信协议两大类。...
- 网络编程懒人入门(十三):一泡尿的时间,快速搞懂TCP和UDP的区别
-
本文引用了作者Fundebug的“一文搞懂TCP与UDP的区别”一文的内容,感谢无私分享。1、引言...
- 程序员必备的学习笔记《TCP/IP详解(一)》
-
为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样...
- 一文读懂TCP/IP协议工作原理和工作流程
-
简述本文主要介绍TCP/IP协议工作原理和工作流程。含义TCP/IP协议,英文全称TransmissionControlProtocol/InternetProtocol,包含了一系列构成互联网...
- 如何在 Windows 10 和 Windows 11 上重置 TCP/IP 堆栈
-
传输控制协议/Internet协议,通常称为TCP/IP,是您的WindowsPC如何与Internet上的其他设备进行通信的关键部分。但是当事情出错时会发生什么?你如何解决它?幸运的...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)