通过九本优秀的开源书籍学习 C 语言
书是非常私人的东西,编程类书籍也不例外。我们都是通过阅读书籍来帮助掌握某种语言的基本知识。随后又通过阅读书籍来全面探索这门语言的灵活性。我仔细考察了一些我最喜爱的 C 语言书籍,并从其中选出了对我意义最大的九本。
C 语言是一种通用的、面向过程的高级编程语言。也是最具流行度和影响力的编程语言之一。该语言在设计时就被设计为可以通过编译器进行编译,以此来对内存进行底层操作、高效地执行机器指令以及在运行时仅需要最小的支持。很多很多编程语言都得益于 C 语言, C 语言就像是编程界的通用语言一样。
C 语言非常易懂。它允许程序员能够以一种清晰、简单、符合逻辑的方式来组织程序。这是一种非常灵活、实用并且简洁的语言,同时它还具有非常容易读懂的语法。使用 C 语言编写的代码运行非常快。可以非常简单地操作计算机的底层设施。通过编译器的指令可以允许我们为不同体系结构的设备生成同一个版本的程序。
C 语言是*的。因此学习 C 语言的书籍也是体现了其*性。快来看看我挑选的开源书籍,有没有哪一本能够吸引你?好好享受它吧!如果你想学习C语言/C++可以来这个群,首先是三三零,中间是八五九,最后是七六六,里面有大量的学习资料可以下载。
《 C 语言 The C Book》
The C Book
《C 语言 The C Book》这本书是为那些已经具备使用现代高级面向过程编程语言的程序员设计的。这本书专注于那些 C 语言的特有之处。尤其是使用 C 语言的方式是这本书所重点关注的。作者: Mike Banahan, Declan Brady 和 Mark Doran ,350 页
包含以下章节:
-
变量及运算法则介绍 – 介绍了 C 语言的基础知识, 包括关键字和标识符,变量声明,实数类型,整型,表达式和运算法则以及常量
-
控制流及逻辑表达式 – 这一章介绍了在 C 语言中可以用于控制程序流程的几种方法,包括一些尚未介绍的语句。 控制流,逻辑表达式以及奇怪的运算符。
-
函数 – 函数的类型, 递归,传参数以及链接
-
数组和指针 – 数组, 指针, 字符处理, sizeof 以及储存空间分配, 函数指针,包含指针的表达式,数组,
&
运算符以及函数声明 -
结构体数据类型 – 结构体, 联合体, 位字段, 枚举类型, 限定符、派生类型以及初始化
-
预处理器 – 预处理器是如何工作的及其相关指令
-
C 语言中的一些特定内容 – 声明, 定义,
typedef
,const
和volatile
以及序列点 -
库 – 诊断, 字符处理, 本地化, 与具体实现相关的限制, 数学函数, 非局部跳转, 信号处理, 可变参数, 输入输出, 格式化 I/O, 字符 I/O, 无格式 I/O, 随机访问函数, 通用函数, 字符串处理, 日期和时间
-
C 语言编写的完整程序 – 综合以上内容, main函数的参数, 解析程序参数, 模式匹配程序以及一个难度更大的程序
作者允许读者利用此书做任何他们想做的事情,只需说明作者和版权。经 Mike Banahan 确认,本书通过知识共享协议发布。
《风格的要素—— C 语言版C Elements of Style 》
C Elements of Style
作者 Steve Oualline ,265页
《风格的要素—— C 语言版C Elements of Style》是一本十分有用的编程风格指南,指导 C 和 C++ 程序员如何去编写可读性良好的,易懂的,易于维护的程序。不论你是一个学生还是专业程序员,你都能从这本书中提供的技巧和技术中获益,构建优雅可靠的代码。
这本书意在向读者们展示如何在你的程序中融入风格良好的代码。机器仅处理代码,而人类关注于注释。良好的编程风格与这两部分都有关。
我们的最终目标是构建设计良好,编写良好的代码,这种代码对于计算机来说是高效的,同时包含了精心编写的注释用于帮助人类理解程序。这样一来,调试,维护和增强程序,都变得更加容易了。最终还提升了代码的可读性,简洁性,可靠性和可维护性。
在本书中,你可以找到有关编写注释,程序头,变量命名,语句格式化,语句细节,编写预处理器命令,组织目录和创建makefile的指南。
本书通过知识共享协议发布。
《编写你自己的 Lisp 语言Build Your Own Lisp》
Build Your Own Lisp
作者 Daniel Holden ,212页
在学习 C 语言的同时学习如何创造你自己的编程语言——一个最简的 Lisp 语言(仅用不到1000行代码)。
《编写你自己的 Lisp 语言Build Your Own Lisp》这本书是为两种人写的,一种是想要学习 C 语言的人,另一种是想要知道如何创建一门语言的人。本书并不适合作为第一本入门书籍,因为你需要一些编程经验才能读懂它的内容。
本书基于知识共享署名-非商业性使用-3.0 未本地化版本协议发布
纸质版可以在 Amazon 上购买。
《GNU C 语言参考手册The GNU C Reference Manual》
The GNU C Reference Manual
作者 Trevis Rothwell, James Youngman ,91页
《GNU C 语言参考手册The GNU C Reference Manual》是一本 C 语言参考手册,意在写明 C89,C99 标准以及当前 GNU 对标准 C 语言的扩展情况。本书并不适合新手阅读。
包含以下章节:
-
词法元素——这部分内容描述了预编译之后,组成 C 语言代码的词法元素。包括 5 种:关键字,标识符,常量,操作符和分隔符
-
数据类型——研究基础的数据类型,枚举,联合体,结构体,数组,指针,不完全类型,类型修饰词,储存类型修饰词以及重命名类型
-
表达式和操作符 —— 还介绍了自增/自减,算数操作符,复共轭性,比较操作符,逻辑运算符,位移,位运算符,指针运算符,
sizeof
,类型转换等等。 -
语句 —— 标签,表达式,
if
语句,switch
语句,while
语句,do
语句,for
语句,代码块,null
语句,goto
语句,break
语句,continue
语句,return
语句以及typedef
语句 -
函数 —— 学习函数声明,函数定义,函数调用,参数,变长参数列表,通过指针调用函数,
main
函数,递归函数等等。 -
程序结构和定义域 —— 从宏观上来看程序
-
一个例程 —— 一个用 C 语言编写的完整程序,包含 C 语言源文件和头文件。这个程序是一个典型“hello world”程序的扩展版,它向我们展示了在 GNU FSF 项目中 C 语言是如何工作的。
本书基于 GNU Free Documentation License Version 1.3 及其更新版本发布。
《GNU C 语言编程教程The GNU C Programming Tutorial》
The GNU C Programming Tutorial
作者 Mark Burgess, Ron Hale-Evans ,290页
《GNU C 语言编程教程The GNU C Programming Tutorial》以逻辑顺序向读者介绍了 C 语言的基本内容。本书内容涵盖了 C 语言的全部主要内容的细节以及如何使用 C 语言编程,特别强调了GNU/Linux编译器以及相关软件。
一些章节主要介绍了函数,变量以及声明,作用域,表达式和操作符,参数,指针,判定,循环,数组,字符串,输入输出等等。
本书基于 GNU Free Documentation License Version 1.1 版发布。
《C 语言基础Essential C》
Essential C
作者 Nick Parlante ,45页
《C 语言基础Essential C》这份简短的文档解释了 C 语言全部的常用特性和技术。这份文档十分简洁,因此它的目标人群是已经具有其他编程语言背景的人。
内容包括变量,整型,浮点型,类型提升,截断,操作符,控制结构(if
,while
,for
),函数,数值参数,引用参数,结构体,指针,数组,预处理器以及 C 语言标准库函数。
目录:
-
简介
-
基础类型与运算符
-
控制结构
-
复杂数据类型
-
函数
-
杂项
-
高级数组与指针
-
运算符和标准库
根据作者的描述,我们得知这是一本基于开源协议发布的书籍。
《Beej 的 C 语言教程Beej’s Guide to C Programming》
Beej’s Guide to C Programming
作者 Brian “Beej” Hall ,130 pages
《Beej 的 C 语言教程Beej’s Guide to C Programming》试图为那些心存困惑的读者带来一种仅能通过纯粹 C 语言编程而产生的快感。
章节:
-
构建程序的基本结构块
-
变量,表达式和,语句。变量就是一个数字的名字——一个 C 语言表达式可以包含其他的表达式以及运算符。文章还介绍了
if
,while
,do while
以及程序重复执行的for
语句。
-
函数——当程序块变得很大,或是当这些程序块用来执行一些特定的工作时,我们会把它们封装到函数中。
-
变量(续篇)——探讨了变量的作用域和储存类型
-
指针——它们是数据在内存中的地址。就像一个整型的值可以是12,一个指针的值就是数据在内存中的地址
-
结构体——结构体允许你将逻辑上相关的变量分组。随后你可以将其作为一个整体来使用。
-
数组——一组相关数据的线性集合
-
字符串—— C 语言中的字符串就是内存中的一组连续的比特,包含了一组字符
-
动态内存——探讨了malloc(), free(), realloc() 和 calloc() 函数
-
更多内容——指针运算,
typedef
,枚举,结构体声明,命令行参数,多维数组,类型转换和类型提升,不完整类型,void
指针,NULL
指针和static
关键字 -
标准输入输出库——用来进行文件的读写。
-
字符串操作——用来查找子串的函数,连接字符串的函数,获取字符串长度的函数,等等。
-
算数——一些可以满足你基本算数需求的函数。
本书基于知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本协议发布。
《现代 C 语言Modern C》
Modern C
作者 Jens Gustedt ,310页
《现代 C 语言Modern C》鼓励读者逐级探索 C 语言的特性。内容一共分为如下五层境界:
-
第一层——使读者了解最基本的 C 语言程序。了解使用 C 语言的目的和数据结构,以及如何去使用它们
-
第二层——详细的说明了大部分主要概念以及特性,包括控制结构,数据类型操作符和函数。这一级的主要目的是让读者能够对于这些运行程序必备的知识,有更深刻的理解。
-
第三层——进入 C 语言的核心部分。详细的解释了指针,让你熟悉 C 语言的内存模型,并且让你了解大多数 C 语言库的接口
-
第四层——深入理解一些特定的主题。比如性能,重入,原子性,线程及泛型编程
-
第五层——探讨了作者对这门语言未来发展趋势的理解
本书基于知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本协议发布
《GCC 简介An Introduction to GCC》
An Introduction to GCC
作者 Brian Gough ,144页
《GCC 简介An Introduction to GCC》介绍了 GNU C 语言和 C++编译器——gcc 和 g++,它们是 GNU 编译器套装(GCC)的一部分。
本书介绍了如何使用编译器。通过多年以来对邮件列表中的问题的观察,本书带领读者直击 GCC 的重要内容。
章节介绍:
-
编译c程序——介绍了如何使用 gcc 来编译 C 语言程序。单个文件或多个文件均可以编译,也可以使用操作系统函数和头文件。
-
编译选项——介绍了 gcc 中一些常用的编译选项。这些参数控制一些功能,例如搜索库函数和头文件的路径,提供额外的编译告警和诊断。预处理宏和 C 语言方言。
-
使用预处理器——描述了cpp(GNU C preprocessor)的使用方法,cpp 是 GCC 的一部分。预处理器会在编译前将代码中的宏展开,当 GCC 处理 c 或者 c++ 代码时,预处理器会自动被调用。
-
编译带有调试信息的程序——提供了一个
-g
选项用以在中间文件和可执行文件中存储额外的调试信息。这些调试信息使得我们可以追踪错误,将机器指令中的问题定位到源代码中。 -
优化编译——GCC 是一个优化过的编译器。它提供了很多选项,可以加速编译或是减少编译后文件的体积。
-
编译C++程序——介绍了如何使用 GCC 编译 C++ 程序以及该语言可以使用的命令行选项。
-
平台相关选项——介绍了一些常见平台可以使用的选项
-
排错——GCC提供了一些帮助和诊断选项用于帮助我们定位编译过程中出现的问题。
-
编译器相关工具——介绍了 GCC 编译过程中会用到的一些有用的工具。包括用来创建库的 GNU 归档工具 ar,GNU 性能和覆盖率测试程序 gprof 和 gcov
-
编译器是如何工作的——详细介绍了 GCC 是如何把源文件编译为可执行文件的。编译是一个多阶段过程,涉及很多工具,包括 GNU 编译器本身,GNU 汇编器,以及 GNU 链接器。在编译过程中使用的各种工具,我们统称为编译链。
-
检查编译后的文件——介绍了一些用来检查可执行文件和 obj 文件内容的工具。
-
常见错误信息——介绍了 gcc 和 g++ 产生的最常见的错误和告警信息。每种情况都带有原因分析,样例以及建议的解决办法。
-
获取帮助——如果读者遇到了书中没有提到的问题,还有很多介绍GCC和语言的手册可以参考。
本书基于 GNU Free Documentation 协议发布
很多 C 语言书籍都可以免费下载,但是可惜的是它们并没有以开源协议来发布,或其基于何种协议并没有明确说明。以下对其进行介绍,排名不分先后:
-
《
C编程导论Introduction to C Programming》 – 作者 Rob Miles
-
《
新标准 C 语言The New Standard C: An Economic and Cultural Commentary》– 作者 Derek M. Jones
-
《
使用标准 C 语言进行面向对象编程Object-Oriented Programming with ANSI-C》– 作者 Axel-Tobias Schreiner
-
《
编写零缺陷的 C 语言代码Writing Bug-Free C Code》– 作者 Jerry Jongenius
最后,如果你想买一本权威参考书,请认准《C 程序设计语言The C Programming Language》。这本书非常简练,不适合新手,但是被奉为经典。
推荐阅读
-
通过详细的C语言代码和图解解释,学习直接插入排序算法
-
【摩尔线程+Colossal-AI强强联手】MusaBert登上CLUE榜单TOP10:技术细节揭秘 - 技术实力:摩尔线程凭借"软硬兼备"的技术底蕴,让MusaBert得以从底层优化到顶层。其内置多功能GPU配备AI加速和并行计算模块,提供了全面的AI与科学计算支持,为AI推理和低资源条件下的大模型训练等场景带来了高效、经济且环保的算力。 - 算法层面亮点:依托Colossal-AI AI大模型开发系统,MusaBert在训练过程中展现出了卓越的并行性能与易用性,特别在预处理阶段对DataLoader进行了优化,适应低资源环境高效处理海量数据。同时,通过精细的建模优化、领域内数据增强以及Adan优化器等手段,挖掘和展示了预训练语言模型出色的语义理解潜力。基于MusaBert,摩尔线程自主研发的MusaSim通过对比学习方法微调,结合百万对标注数据,MusaSim在多个任务如语义相似度、意图识别和情绪分析中均表现出色。 - 数据资源丰富:MusaBert除了自家高质量语义相似数据外,还融合了悟道开源200GB数据、CLUE社区80GB数据,以及浪潮公司提供的1TB高质量数据,保证模型即便在较小规模下仍具备良好性能。 当前,MusaBert已成功应用于摩尔线程的智能客服与数字人项目,并广泛服务于语义相似度、情绪识别、阅读理解与声韵识别等领域。为了降低大模型开发和应用难度,MusaBert及其相关高质量模型代码已在Colossal-AI仓库开源,可快速训练优质中文BERT模型。同时,通过摩尔线程与潞晨科技的深度合作,仅需一张多功能GPU单卡便能高效训练MusaBert或更大规模的GPT2模型,显著降低预训练成本,进一步推动双方在低资源大模型训练领域的共享目标。 MusaBert荣登CLUE榜单TOP10,象征着摩尔线程与潞晨科技联合研发团队在中文预训练研究领域的领先地位。展望未来,双方将携手探索更大规模的自然语言模型研究,充分运用上游数据资源,产出更为强大的模型并开源。持续强化在摩尔线程多功能GPU上的大模型训练能力,特别是在消费级显卡等低资源环境下,致力于降低使用大模型训练的门槛与成本,推动人工智能更加普惠。而潞晨科技作为重要合作伙伴,将继续发挥关键作用。
-
go语言Socket编程-Socket编程 什么是Socket Socket,英文含义是插座、插孔,一般称之为套接字,用于描述IP地址和端口。可以实现不同程序间的数据通信。 Socket起源于Unix,而Unix基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。Socket就是该模式的一个实现,网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用:Socket,该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。 套接字的内核实现较为复杂,不宜在学习初期深入学习,了解到如下结构足矣。 套接字通讯原理示意 在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程。“IP地址+端口号”就对应一个socket。欲建立连接的两个进程各自有一个socket来标识,那么这两个socket组成的socket pair就唯一标识一个连接。因此可以用Socket来描述网络连接的一对一关系。 常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。 网络应用程序设计模式 C/S模式 传统的网络应用设计模式,客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。 B/S模式 浏览器(Browser)/服务器(Server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。 优缺点 对于C/S模式来说,其优点明显。客户端位于目标主机上可以保证性能,将数据缓存至客户端本地,从而提高数据传输效率。且,一般来说客户端和服务器程序由一个开发团队创作,所以他们之间所采用的协议相对灵活。可以在标准协议的基础上根据需求裁剪及定制。例如,腾讯所采用的通信协议,即为ftp协议的修改剪裁版。 因此,传统的网络应用程序及较大型的网络应用程序都首选C/S模式进行开发。如,知名的网络游戏魔兽世界。3D画面,数据量庞大,使用C/S模式可以提前在本地进行大量数据的缓存处理,从而提高观感。 C/S模式的缺点也较突出。由于客户端和服务器都需要有一个开发团队来完成开发。工作量将成倍提升,开发周期较长。另外,从用户角度出发,需要将客户端安插至用户主机上,对用户主机的安全性构成威胁。这也是很多用户不愿使用C/S模式应用程序的重要原因。 B/S模式相比C/S模式而言,由于它没有独立的客户端,使用标准浏览器作为客户端,其工作开发量较小。只需开发服务器端即可。另外由于其采用浏览器显示数据,因此移植性非常好,不受平台限制。如早期的偷菜游戏,在各个平台上都可以完美运行。 B/S模式的缺点也较明显。由于使用第三方浏览器,因此网络应用支持受限。另外,没有客户端放到对方主机上,缓存数据不尽如人意,从而传输数据量受到限制。应用的观感大打折扣。第三,必须与浏览器一样,采用标准http协议进行通信,协议选择不灵活。 因此在开发过程中,模式的选择由上述各自的特点决定。根据实际需求选择应用程序设计模式。 简单的C/S模型通信 Server端:Listen函数 func Listen(network, address string) (Listener, error) network:选用的协议:TCP、UDP, 如:“tcp”或 “udp” address:IP地址+端口号, 如:“127.0.0.1:8000”或 “:8000” Listener 接口: type Listener interface { Accept (Conn, error) Close error Addr Addr } Conn 接口: type Conn interface { Read(b byte) (n int, err error) Write(b byte) (n int, err error) Close error LocalAddr Addr RemoteAddr Addr SetDeadline(t time.Time) error SetReadDeadline(t time.Time) error SetWriteDeadline(t time.Time) error } 参看 [<u>https://studygolang.com/pkgdoc</u>](https://studygolang.com/pkgdoc) 中文帮助文档中的demo: 示例代码:TCP服务器.go package main import ( "net" "fmt" ) func main { // 创建监听 listener, err:= net.Listen("tcp", ":8000") if err != nil { fmt.Println("listen err:", err) return } defer listener.Close // 主协程结束时,关闭listener fmt.Println("服务器等待客户端建立连接...") // 等待客户端连接请求 conn, err := listener.Accept if err != nil { fmt.Println("accept err:", err) return } defer conn.Close // 使用结束,断开与客户端链接 fmt.Println("客户端与服务器连接建立成功...") // 接收客户端数据 buf := make(byte, 1024) // 创建1024大小的缓冲区,用于read n, err := conn.Read(buf) if err != nil { fmt.Println("read err:", err) return } fmt.Println("服务器读到:", string(buf[:n])) // 读多少,打印多少。 }
-
通过九本优秀的开源书籍学习 C 语言
-
包婷婷 (201550484)作业一 统计软件简介与数据操作-SPSS(Statistical Product and Service Solutions),"统计产品与服务解决方案"软件。最初软件全称为"(SolutionsStatistical Package for the Social Sciences),但是随着SPSS产品服务领域的扩大和服务深度的增加,SPSS公司已于2000年正式将英文全称更改为"统计产品与服务解决方案",标志着SPSS的战略方向正在做出重大调整。为IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称SPSS,有Windows和Mac OS X等版本。 1984年SPSS总部首先推出了世界上第一个统计分析软件微机版本SPSS/PC+,开创了SPSS微机系列产品的开发方向,极大地扩充了它的应用范围,并使其能很快地应用于自然科学、技术科学、社会科学的各个领域。世界上许多有影响的报刊杂志纷纷就SPSS的自动统计绘图、数据的深入分析、使用方便、功能齐全等方面给予了高度的评价。 R统计软件介绍 R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。 与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。 该语言的语法表面上类似 C,但在语义上是函数设计语言(functional programming language)的变种并且和Lisp 以及 APL有很强的兼容性。特别的是,它允许在"语言上计算"(computing on the language)。这使得它可以把表达式作为函数的输入参数,而这种做法对统计模拟和绘图非常有用。 R是一个免费的*软件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免费下载和使用的。在R主页那儿可以下载到R的安装程序、各种外挂程序和文档。在R的安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN获得。 二、R语言 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个*、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。 R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点: 1.R是*软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。[2] 2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。[2] 3. 所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。一些常用、基本的程序包已经被收入了标准安装文件中,随着新的统计分析方法的出现,标准安装文件中所包含的程序包也随着版本的更新而不断变化。在另外版安装文件中,已经包含的程序包有:base一R的基础模块、mle一极大似然估计模块、ts一时间序列分析模块、mva一多元统计分析模块、survival一生存分析模块等等.[2] 4.R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要。输出的图形可以直接保存为JPG,BMP,PNG等图片格式,还可以直接保存为PDF文件。另外,和其他编程语言和数据库之间有很好的接口。[2] 5.如果加入R的帮助邮件列表一,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地.[2] R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。 R的语法是来自Scheme。R的使用与S-PLUS有很多类似之处,这两种语言有一定的兼容性。S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。 但是请不要忘了:R是免费的(R is free)。R语言源代码托管在github,具体地址可以看参考资料。[3] 。 R语言的下载可以通过CRAN的镜像来查找。 R语言有域名为.cn的下载地址,有六个,其中两个由Datagurn,由 中国科学技术大学提供的。R语言Windows版,其中由两个下载地点是Datagurn和 USTC提供的。 三、stata Stata 是一套提供其使用者数据分析、数据管理以及绘制专业图表的完整及整合性统计软件。它提供许许多多功能,包含线性混合模型、均衡重复反复及多项式普罗比模式。用Stata绘制的统计图形相当精美。 新版本的STATA采用最具亲和力的窗口接口,使用者自行建立程序时,软件能提供具有直接命令式的语法。Stata提供完整的使用手册,包含统计样本建立、解释、模型与语法、文献等超过一万余页的出版品。 除此之外,Stata软件可以透过网络实时更新每天的最新功能,更可以得知世界各地的使用者对于STATA公司提出的问题与解决之道。使用者也可以透过Stata. Journal获得许许多多的相关讯息以及书籍介绍等。另外一个获取庞大资源的管道就是Statalist,它是一个独立的listserver,每月交替提供使用者超过1000个讯息以及50个程序。 四、PYTHON
-
通过 GDB 学习 C 语言的说明
-
用这 9 本优秀的开源书籍学习 C 语言
-
有哪些学习 C 语言的经典书籍值得推荐?
-
深入学习 C 语言需要阅读哪些书籍;先学 C 语言还是先学 C#;学习 java 源代码的顺序|极致目标要点
-
C 语言真的很难?那是因为你没有看这张图,没有通过化整为零的方式轻松学习 C 语言。-三、scanf