新書推薦:

《
权力、信仰与幻想:美国在中东(1776年至今)(历史学堂)
》
售價:NT$
602.0

《
学习力就是竞争力
》
售價:NT$
301.0

《
向上流动:求学与原生家庭的羁绊
》
售價:NT$
301.0

《
大国金融:全球金融变局下的中国机会(解读全球金融体系,变局前因后果,金融危机的根源与演化逻辑,中国特色金融,现代金融体系)
》
售價:NT$
347.0

《
如何拥抱一只刺猬(漫画版)
》
售價:NT$
305.0

《
万千心理·拉康精神分析的临床概念化
》
售價:NT$
551.0

《
超级沟通者 与所有人连接的秘密
》
售價:NT$
352.0

《
工匠、商人与银行家:文艺复兴时期的佛罗伦萨经济
》
售價:NT$
857.0
|
編輯推薦: |
本书面向程序设计语言的初学者,不需要C语言基础,从零起点介绍C和C 程序设计。本书通过大量短小精悍的程序详细而全面地讲解C 的基本概念和技术。本书每章末尾针对知识点设计了实践性强的习题,帮助读者巩固基础知识和提升编程能力。
|
內容簡介: |
C 语言是在C语言基础上开发的一种集面向对象程序设计、过程化程序设计和函数式程序设计于一体的程序设计语言,是C语言的超集。C 语言功能丰富、性能高效,在系统级编程和性能敏感的应用中有着不可或缺的存在意义。本书面向程序设计语言的初学者,不需要C语言基础,从零起点介绍C和C 程序设计。本书通过大量短小精悍的程序详细而全面地讲解C 的基本概念和技术。本书每章末尾针对知识点设计了实践性强的习题,帮助读者巩固基础知识和提升程序设计能力。
本书实例导向、内容全面、文字精练,重要知识点配有图解,可用作高等学校相关专业程序设计基础课程的教材,也适合计算机爱好者阅读参考。
|
內容試閱:
|
C 是一种广泛使用的计算机程序设计语言,由C语言扩展升级而来,支持多种程序设计范式: 过程化程序设计、面向对象程序设计、函数式程序设计。C 的设计目标是提供一种高效、灵活和可移植的程序设计语言,既能支持系统级程序设计,又能支持应用级程序设计。
1985年,C 的第一个版本发布,它包含了类、继承和虚函数等面向对象程序设计的特性。接下来的几年里,C 逐渐流行起来,并在各个领域得到广泛应用。之后,C 经历了多个版本的演变和改进,每个版本都引入了新的特性和功能。
1998年,C 标准委员会发布了C 98标准,为C 定义了一套正式的语法和语义规范,完善了C 的功能和特性。此后,C 标准在2011年、2014年、2017年、2020年相继进行了更新,分别发布了C 11、C 14、C 17和C 20标准,增加了许多新的功能和特性。
C 作为一种通用的程序设计语言,具有丰富的功能和高效的执行性能,经过多年的演变和改进,在目前的软件市场仍然具有无可比拟的优势。C 在系统级程序设计和性能敏感的应用中表现出色,并对其他程序设计语言有着深远的影响。
本书特色
(1) 快速上手: 本书第1章讲解条件语句if,第2章讲解循环语句,迅速带领读者进入C 程序设计的大门,开启程序设计思维训练的新天地。运算符和数据类型的讲解分别位于第4章和第5章。这样的章节顺序使得读者可以快速上手C 编程。
(2) 实例导向: 本书通过大量程序设计实例深入浅出地讲解C 的语法。程序设计需要一个能力培养占主导的学习氛围,能力、知识、素质培养是三位一体的。本书通过实例教学、实战化的习题来达到提升程序设计能力的目的。
(3) 内容全面: C 是从C语言发展而来的,又经过几十年的发展,语法特性极其丰富。本书继往开来,合理取舍,将C语言和C 的常用知识点进行了全面、细致的讲解。本书内容融会贯通,在讲解当前章节内容时,会提前使用后续章节的知识,并通过简单的介绍让读者提前学会。
(4) 可灵活剪裁: 本书依据语法知识点做了细致的章节划分,读者不必从前往后依次学习全部章节的内容,教师亦可以根据授课学时数灵活地选取要讲解的内容。
(5) 文字精练: 在能够让读者学会的前提下,本书尽量用通俗易懂的方法和精练的语言叙述复杂的概念。本书的核心内容是代码实例,针对每个实例,本书都进行了详细讲解。
(6) 知识点图解: 针对仅凭文字讲解不易理解的知识点,本书通过图解的方式帮助读者更好地理解它们,如字符指针数组、指向指针数组的指针、浅拷贝、虚拟继承等。
〖1〗C 程序设计前言〖3〗〖3〗本书内容
第1章条件语句: 程序设计的三种语句是顺序语句、条件语句和循环语句。本章介绍编写分支结构程序的条件语句——if语句。
第2章循环语句: 循环语句是在一定条件下重复执行某段代码的流程结构。本章介绍while循环、dowhile循环、for循环,以及循环的嵌套。
第3章语句进阶: 介绍多分支的条件语句——switch语句、立即开始下一次循环的continue语句、跳出循环语句或switch语句的break语句。
第4章运算符: 介绍C 内置的多种运算符,即自增运算符、自减运算符、条件运算符、逗号运算符、算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、“”运算符、“&”运算符、“∷”作用域运算符、sizeof运算符,以及运算符的优先级与结合性。
第5章数据类型: C 提供的基本数据类型有整型、浮点型、布尔型、空类型、空指针类型,字符型属于整数类型的子类型。用户自定义的构造类型包括枚举、数组、结构、联合、类、位域。本章介绍枚举,还介绍ASCII码、指针、引用、强制类型转换运算符,以及使用typedef关键词为已有的数据类型定义别名。
第6章函数: 函数是对要解决的问题的某个过程的抽象,是构成程序的基本单位。函数为代码复用提供技术上的支持。本章介绍函数声明与函数定义、形式参数与实际参数、函数重载、默认实参、递归函数,并探索函数调用的原理。
第7章函数进阶: 首先介绍变量的作用域,然后介绍函数参数传递的三种方法(值传递、地址传递、引用传递),最后介绍内联函数以及C 项目的分离编译。
第8章数组: 数组是数据和对象组织的主要手段,是组织运算的有力工具。本章介绍数组在内存中的存储结构,定义数组、初始化数组和访问数组元素的方法,利用指针变量访问数组的元素,以及如何把数组传递给函数。
第9章排序与查找: 排序与查找是一维数组的典型应用,是训练程序设计逻辑的算法实例。本章介绍冒泡排序、插入排序、选择排序,以及折半查找算法。
第10章字符串: C字符串使用空字符标记字符串的结束。一维字符数组可用于存储字符串。字符指针是指向字符型数据的指针。字符指针数组是元素为字符指针的指针数组。命令行参数和环境变量是操作系统传递给主函数的参数,都是指向字符指针数组的指针。本章介绍了如何求字符串长度、复制字符串、连接字符串、比较字符串、切分字符串。
第11章指针进阶: 指针是C语言精华的部分,通过灵活地运用指针,可以写出独具匠心、构思巧妙的程序。本书第5章介绍了指针的概念,第6~10章介绍了指针的多种用法。本章介绍指针的进阶内容,包括动态内存分配、指针数组、指向指针的指针、函数指针。
第12章结构与联合: 结构是C语言中一种用户自定义的构造类型。结构由多个不同数据类型的成员构成,而位域允许将数据成员的二进制位划分为多个区域。联合是所有成员占用同一段内存的用户构造类型。本章还介绍了字节对齐、结构数组、结构指针数组。
第13章面向对象: 在开发大型软件系统时,需要面对很多挑战。面向对象的软件开发方法是构建大型软件系统行之有效的方法。与面向过程的软件开发方法不同,面向对象方法以数据为主线,将数据和操作封装在对象中,通过消息请求对象主动执行内部操作来改变其私有数据。C 在C语言的基础上增加了面向对象程序设计。本章介绍面向对象的特点、定义和使用类、构造函数、析构函数、this指针、类的静态成员。
第14章类与对象的语法: 介绍对象数组、对象指针数组、友元函数与友元类、const关键词修饰对象、类的分离编译。
第15章继承: 类的继承是一种实现代码复用的方法。通过继承机制,可以利用已有的数据类型来定义新的数据类型,从已有类产生新类的过程也称为类的派生。本章介绍基类与派生类、继承方式、派生类对象的构造、多继承。
第16章多态性: 向不同类型的对象发送同一个消息,不同对象会做出不同的响应,这就是多态性。多态性分为两类,即静态多态性和动态多态性。静态多态性是编译时的多态,而动态多态性是运行时的多态。虚函数是C 运行时多态的基础。本章核心内容包括虚函数与多态性、虚析构函数、纯虚函数与抽象类。
第17章模板: 模板是C 泛型程序设计的基础,泛型程序设计即以一种独立于任何特定类型的方式编写代码。本章介绍模板的概念、函数模板、类模板,以及如何继承类模板和将类模板对象作为函数参数。
第18章运算符重载: C 支持运算符重载,通过重载运算符可以将类的实例作为运算数,可以使用成员函数或非成员函数重载运算符。本章介绍运算符重载的规则以及重载各种运算符的方法。
第19章输入输出: 输入是指从输入流提取数据传送给应用程序。输出是指应用程序将数据送给输出流。本章介绍C语言的文件函数和C 的输入输出流。
第20章异常处理: C语言使用函数返回值表示错误,C 对错误处理进行了扩展,支持使用异常机制来处理程序中发生的错误。本章介绍抛出异常和捕获异常的方法、声明函数抛出异常、C 预先定义的异常类,以及如何实现用户自定义异常。
开发环境
本书使用编译工具CMake来控制可执行文件的生成,以下CMake构建脚本用于将每个源文件都编译生成一个可执行文件。file(GLOB_RECURSE SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/.cpp)
#获取全部.cpp文件
foreach(SrcFullName ${SRC_LIST})
string(FIND ${SrcFullName} ”/” StartIndex REVERSE) #查找最后的斜杠
string(FIND ${SrcFullName} ”.cpp” EndIndex REVERSE) #查找最后的句点
math(EXPR StartIndex ${StartIndex} 1)#文件名开始位置是最后斜杠的下标 1
math(EXPR Len ${EndIndex}-${StartIndex}) #计算不含扩展名的文件名长度
string(SUBSTRING ${SrcFullName} ${StartIndex} ${Len} SrcFile) #提取文件名
message(”${SrcFullName} -> ${SrcFile}.exe”)
add_executable(${SrcFile} ”${SrcFile}.cpp” )
if(CMAKE_VERSION VERSION_GREATER 3.12)
set_property(TARGET ${SrcFile} PROPERTY CXX_STANDARD 20)
endif()
endforeach()
在集成开发环境Visual Studio 2022下,打开本书提供的CMake项目,单击工具栏上的【调试当前文档】就可以运行本书的每个实例。
编者
2024年9月
|
|