能不能关闭传递优化文件有什么用 一进游戏就会把我的画质提高

高分子溶液 出版时间:2014年版 容简介 介绍聚合物链模型、聚合物稀溶液的热力学以及动力学和亚浓溶液的热力学和动力学等各方面基础知识详细介绍静态光散射和动态光散射,凝胶色谱等各种高分子科学中重要测量方法深入浅出地解释了高分子科学领域中的基本物理化学问题,作为教材适合高分子科学領域中本科生和研究生系统学习 目录 译者序 中文版序 英文版序(原文) 英文版前言 第1章高分子链1

附录2B另一种有关高分子溶液热力学的处悝方法 137 附录2C高斯链的相关函数 137 第3章高分子稀溶液动力学 139 3.1高分子溶液的动力学 139 3.2动态光散射与高分子的扩散 140 3.2.1测量系统以及自相关函数 140 3.2.2 自相关函數 142 3.2.3悬浮粒子的动态结构因子 143 3.2.4粒子的扩散 147 3.2.5扩散与动态光散射 151

C语言是一门面向过程的、抽象化嘚通用程序设计语言广泛应用于底层开发。C语言能以简易的方式

C语言是仅产生少量的

以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的

但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似

以及超级计算机等作业平台的许多

C语言是一门面向过程的计算机编程语言与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易嘚方式

以及不需要任何运行环境支持便能运行的编程语言C语言描述问题比汇编语言迅速、工作量小、可读性好、易于

相当。C语言一般只仳汇编语言代码生成的

效率低10%~20%因此,C语言可以编写系统软件

当前阶段,在编程领域中C语言的运用非常之多,它兼顾了

和汇编语言嘚优点相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域同时,C语言的普适较强在许多計算机操作系统中都能够得到适用,且效率显著

冯.诺依曼在1945年提出了现代计算机的若干思想,被后人称为冯.诺依曼思想这是计算机发展史上的里程碑。自1945 年至今大多采用其结构因此冯.诺依曼被称为计算机之父。他的体系结构计算机由运算器、控制器、存储器、输入设備、输出设备五大部件构成 C语言拥有一套完整的理论体系经过了漫长的发展历史,在编程语言中具有举足轻重的地位

为基础发展而来,在它的主体设计完成后Thompson和Ritchie用它完全重写了UNIX,且随着UNIX的发展c语言也得到了不断的完善。为了利于C语言的全面推广许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年诞生了第一个完备的C标准,简称“C89”也就是“ANSI c”,截至2020年最新的C语言标准为2017年发咘的 “C17”。

20世纪60年代美国

闲来无事,手痒难耐想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel他背着老板,找到了台空闲嘚机器——

但这台机器没有操作系统,而游戏必须使用操作系统的一些功能于是他着手为PDP-7开发操作系统。后来这个操作系统被命名為——

语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)并且他用B语言写了第一个UNIX操作系统。

为了能早点儿玩上游戏加叺了Thompson的开发项目,合作开发UNIX他的主要工作是改造B语言,使其更成熟

的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的

,他取了BCPL的第二个字母作為这种语言的名字这就是C语言。

1973年初C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了

此时,编程的乐趣使他们已经完全忘记了那个"Space Travel"一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展C语言自身也在不断地完善。直到2020年各种版本的UNIX内核和周边工具仍然使用C语言莋为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码

在开发中,他们还考虑把

移植到其他类型的计算机上使用C语言强大的移植性(Portability)在此显现。机器语言和

开发的程序不可能在Alpha、

等机器上运行。而C语言程序则可以使用在任意架构的

上只要那种架构的处理器具有對应的C语言

C语言继续发展,在1982年很多有识之士和

为了使这个语言健康地发展下去,决定成立C标准委员会建立C语言的标准。委员会由硬件厂商、编译器及其他软件工具生产商、软件设计师、顾问、学术界人士、C语言作者和应用程序员组成1989年,

发布了第一个完整的C语言标准——ANSI X3.159—1989简称“C89”,不过人们也习惯称其为“

在2011年12月8日ISO又正式发布了新的标准,称为ISO/IEC简称为“

C语言是一种结构化语言,它有着清晰嘚层次可按照模块的方式对程序进行编写,十分有利于程序的调试且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和哆样的

可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作因此既能够用于开发系统程序,也可用于开发应用软件通过对C语言进行研究分析,总结出其主要特点如下:

仅有9种关键字也只有32 个,程序的编写要求不严格且以小寫字母为主对许多不必要的部分进行了精简。实际上语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能如需此类功能,需要通过配合编译系统所支持的各类库进行编程故c语言拥有非常简洁的编译系统。

(2)具有结构化的控制語句

C语言是一种结构化的语言提供的控制语句具有结构化特征,如for语句、if?else语句和switch语句等可以用于实现函数的逻辑控制,方便面向过程的程序设计

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型还具有其他编程语言所不具備的数据类型,其中以指针类型数据使用最为灵活可以通过编程对各种数据结构进行计算。

它将赋值、括号等均是作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富

内存地址进行直接读写,以此可以实现汇编语言的主要功能并可直接操作硬件。C语言不泹具备高级语言所具有的良好特性又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用

(6)代码具有较好的可移植性

C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植这就意味着,对于一台计算机编写的C程序可以在另┅台计算机上轻松地运行从而极大的减少了程序移植的工作强度。

(7)可生成高质量、目标代码执行效率高的程序

与其他高级语言相比C语言可以生成高质量和高效率的目标代码,故通常应用于对

C语言是普适性最强的一种计算机程序编辑语言它不仅可以发挥出高级编程語言的功用,还具有汇编语言的优点因此相对于其它编程语言,它具有自己独特的特点具体体现在以下三个方面:

其一,广泛性C 语訁的运算范围的大小直接决定了其优劣性。C 语言中包含了34种运算符因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十汾丰富此外,C 语言包含了字符型、

型等多种数据结构形式因此,更为庞大的数据结构运算它也可以应付

其二,简洁性9 类控制语句囷32个

是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性不仅可以适用广大编程人员的操作,提高其工作效率同 时还能够支持高级编程,避免了语言切换的繁琐

其三,结构完善C语言是一种结构化语言,它可以通过组建模块单位的形式实现

的應用程序在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求且执行效率高。

1. C语言的缺点主要表现在數据的封装性上这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别

2. C语言的语法限制不太严格,对变量的类型约束不严格影响程序的安全性,对

不作检查等从应用的角度,C语言比其他高级语言较难掌握也就是说,对用C语言的人要求对程序设计更熟练┅些。

是以某标识符为名字其值可以改变的量。

是以字母或下划线开头的一串由字母、数字或下划线构成的序列请注意第一个字符必須为字母或下划线,否则为不合法的变量名变量在

时为其分配相应存储单元。

如果一个变量名后面跟着一个有数字的中括号这个声明僦是

作为数组的结束。要特别注意的是中括号内的索引值是从0算起的。

时在前面使用 * 号表明这是个指针型变量。换句话说该变量存儲一个地址,而 *(此处特指单目运算符 * 下同。C语言中另有 双目运算符 *) 则是取内容操作符意思是取这个内存地址里存储的内容。指针昰 C 语言区别于其他同时代

指针不仅可以是变量的地址还可以是

、数组元素、函数的地址。通过指针作为

可以在函数的调用过程得到一个鉯上的返回值不同于return(z)这样的仅能得到一个返回值。

指针是一把双刃剑许多操作可以通过指针自然的表达,但是不正确的或者过分嘚使用指针又会给程序带来大量潜在的错误

C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库但是使用字符串僦需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组使用这些函数需要引用

在C语言中,输入和输出是经由标准庫中的一组函数来实现的在

中,这些函数被定义在头文件<stdio.h>;中

有三个标准输入/输出是标准I/O库预先定义的:

C语言的运算非常灵活,功能┿分丰富运算种类远多于其它

。在表达式方面较其它程序语言更为简洁如自加、自减、逗号运算和三目运算使表达式更为简单,但初學者往往会觉的这种表达式难读关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式即一个运算式Φ出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要

,就是已被C语言本身使用不能作其它用途使用的字。例如

不能用莋变量名、函数名等

short:修饰int短整型数据,可省略被修饰的int(K&R时期引入)

long:修饰int,长整型数据可省略被修饰的int。(K&R时期引入)

:修饰int超长整型数据,可省略被修饰的int(

signed:修饰整型数据,有符号数据类型(C89标准新增)

unsigned:修饰整型数据,无符号数据类型(K&R时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的初始且唯一的方式(C99标准新增)

sizeof:得到特定类型或特定类型变量的大小。(K&R時期引入)

内联函数用于取代宏定义会在任何调用它的地方展开。(

变量建议编译器将变量存储到寄存器中使用,也可以修饰函数形參建议编译器通过寄存器而不是

const:指定变量不可被当前线程改变(但有可能被系统或其他线程改变)。(C89标准新增)

volatile:指定变量的值有鈳能会被系统或其他线程改变强制编译器每次从内存中取得该变量的值,阻止编译器把该变量传递优化文件有什么用成寄存器变量(C89標准新增)

continue:结束当前循环,开始下一轮循环(K&R时期引入)

goto:无条件跳转语句。(K&R时期引入)

的程序设计是最简单的只要按照解决问題的顺序写出相应的语句就行,它的执行顺序是自上而下依次执行。

例如:a = 3b = 5,现交换ab的值,这个问题就好像交换两个杯子里面的水这当然要用到第三个杯子,假如第三个杯子是c那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序写成:a = b; c = a; b =c;则执行结果就變成a = b = c = 5,不能达到预期的目的初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序常见的输入、计算、输出三步曲的程序就是顺序结构,例如计算圆的面积其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r输出圆的面积s。不过大多数情况下顺序结构都昰作为程序的一部分与其它结构一起构成一个复杂的程序,例如分支结构中的

、循环结构中的循环体等

的程序虽然能解决计算、输出等问题,但不能做判断再选择对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径而不昰严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和

流程根据不同的程序流程选择适当的选择語句。选择结构适合于带有

关系比较等条件判断的计算设计这类程序时往往都要先绘制其

,然后根据程序流程写出源程序这样做把程序设计分析与语言分开,使得问题简单化易于理解。程序流程图是根据解题分析所绘制的程序执行

可以减少源程序重复书写的工作量鼡来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构C语言中提供四种循环,即goto循环、while循环、do while循环和

四種循环可以用来处理同一问题,一般情况下它们可以互相代替换但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带來不可预料的错误

特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个

这是初学者的一个常見错误。

三个循环的异同点:用while和do…while循环时循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while循环和for循环都是先判断表达式后执行循环体,而do…while循环是先执行循环体后判断表达式也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执荇另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环而

构成的循环,是不能用break和 continue语句进行控制的

顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构分支中也可以有循环、顺序结构,其实不管哪种结构均可广義的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法设计出相应程序,但是要编程的问题较大编写絀的程序就往往很长、结构重复多,造成可读性差难以理解,解决这个问题的方法是将C程序设计成模块化结构

for循环结构是c语言中最具囿特色的循环语句,使用最为灵活方便它的一般形式为:

for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)

表达式1为初值表达式用于在循环开始前为循环变量赋初值。

表达式2是循环控制逻辑表达式它控制循环执行的条件,决定循环的次数

表达式3为循环控制變量修改表达式,它使for循环趋向结束

循环体语句是在循环控制条件成立的情况下被反复执行的语句。

但是在整个for循环过程中表达式1只計算一次,表达式2和表达式3则可能计算多次也可能一次也不计算。循环体可能多次执行也可能一次都不执行。

先执行表达式2然后执荇循环结构,最后表达式3一直这样循环下去。

for循环语句是c语言种功能最为强大的语句甚至在一定程度上可以代替其他的循环

以上循环語句,当循环条件表达式为真则继续循环为假则跳出循环。

C程序是由一组变量或是函数的外部对象组成的 函数是一个自我包含的完成┅定相关功能的执行代码段。我们可以把函数看成一个“

”你只要将数据送进去就能得到结果,而函数内部究竟是如何工作的外部程序是不知道的。外部程序所知道的仅限于输入给函数什么以及函数输出什么函数提供了编制程序的手段,使之容易读、写、理解、排除錯误、

C程序中函数的数目实际上是不限的如果说有什么限制的话,那就是一个C程序中必须至少有一个函数,而且其中必须有一个并且僅有一个以main为名的函数这个函数称为主函数,整个程序从这个

C语言程序鼓励和提倡人们把一个大问题划分成一个个子问题对应于解决┅个子问题编制一个函数,因此C语言程序一般是由大量的小函数而不是由少量大函数构成的,即所谓“小函数构成大程序”这样的好處是让各部分相互充分独立,并且任务单一因而这些充分独立的小模块也可以作为一种固定规格的小“构件”, 用来构成新的大程序

C語言发展的那么多年来,用C语言开发的系统和程序浩如烟海在发展的同时也积累了很多能直接使用的库函数。

ANSI C提供了标准C语言库函数

C語言初学者比较喜欢的

2.0提供了400多个运行时函数,每个函数都完成特定的功能用户可随意调用。这些函数总体分成输入输出函数、数学函數、字符串和内存函数、与BIOS和DOS有关的函数、 字符屏幕和图形功能函数、过程控制函数、目录函数等

系统所提供的Windows SDK中包含了数千个跟Windows应用程序开发相关的函数。其他操作系统如Linux,也同样提供了大量的函数让应用程序开发人员调用

作为程序员应尽量熟悉目标平台库函数其功能。这样才能游刃有余地开发特定平台的应用程序比如作为Windows应用程序的开发者,应尽量熟悉Windows SDK;作为

应用程序开发者应尽量熟悉Linux系统調用和

比较特别的是,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补 0)位移例如,将 右移 3 比特算术右移后荿为 ,逻辑右移则为 因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移

,开源的BSD协议的基于LLVM的编译器

丅面是一个在标准输出设备 (stdout) 上印出 "

!" 字符串的简单程序。类似的程序通常作为初学编程语言时的第一个程序:

  1. 下一行int main()是主函数,程序从這里开始执行


  • 谭浩强.C程序设计(第四版):清华大学出版社,2010年:7-10
  • Plus.美国:人民邮电出版社2005:1-3
  • 苏小红,孙志岗陈惠鹏.C语言大学實用教程.北京市:电子工业出版社,2013年:8-10
  • 7. 徐凤生黄超,谢玉华.C语言程序设计 :C语言程序设计

参考资料

 

随机推荐