C程序设计 读书笔记
C语言程序设计学习笔记

C语言程序设计——谭浩强版学习笔记目录第一章C语言概述..................................................................................................................... - 1 -1.1 C程序结构特点16 .................................................................................................... - 1 -1.2 C程序上机步骤17 ....................................................................................................... - 1 -第二章程序的灵魂——算法23 ................................................................................................ - 2 -2.1 算法24 ......................................................................................................................... - 2 -2.2 算法的三种基本结构................................................................................................... - 2 -2.3 结构化程序设计方法42 .............................................................................................. - 2 -第三章数据类型运算符与表达式48 ...................................................................................... - 2 -3.1 C语言的基本元素48 ................................................................................................... - 2 -3.2 C的数据类型48 ........................................................................................................... - 3 -3.3 常量与变量48 ............................................................................................................. - 3 -3.4 基本类型 ...................................................................................................................... - 3 -3.5 变量63 ......................................................................................................................... - 4 -3.6 不同类型数据间的混合运算....................................................................................... - 5 -3.7 函数的调用过程(补充)........................................................................................... - 5 -第四章最简单的C程序设计——顺序程序设计77 ............................................................... - 6 -4.1 字符数据的输入输出................................................................................................... - 6 -第五章选择结构的程序设计97 ................................................................................................ - 6 -第六章循环结构程序设计......................................................................................................... - 6 -6.1 语句标号 ...................................................................................................................... - 6 -6.2 break语句和continue语句.......................................................................................... - 6 -第七章数组132.......................................................................................................................... - 7 -7.1 构造类型 ...................................................................................................................... - 7 -7.2 数组133 ....................................................................................................................... - 7 -7.3 二维数组 ...................................................................................................................... - 7 -7.4 字符串——字符数组................................................................................................... - 7 -7.5 字符串处理函数#include <string.h>.......................................................................... - 8 -第八章函数153.......................................................................................................................... - 8 -8.1 c程序的结构154 .......................................................................................................... - 8 -8.2 函数调用参数传递....................................................................................................... - 9 -8.3 函数变量的作用范围................................................................................................... - 9 -8.4 变量的存储类别 .......................................................................................................... - 9 -第九章预处理命令197 ............................................................................................................ - 10 -9.1 预编译命令作用 ........................................................................................................ - 10 -第十章指针211 ........................................................................................................................ - 11 -10.1 变量的访问方式 ...................................................................................................... - 11 -10.2 指针变量 .................................................................................................................. - 11 -第十一章结构体270 ................................................................................................................ - 12 -11.1 结构体270................................................................................................................ - 12 -11.2 声明结构体类型变量的方法271 ............................................................................ - 12 -11.3 结构体变量引用273 ................................................................................................ - 13 -11.4 结构体变量初始化................................................................................................... - 13 -11.5 结构体数组275 ........................................................................................................ - 13 -11.6 结构体类型指针....................................................................................................... - 13 -11.7 链表283 ................................................................................................................... - 14 -11.8 共用体297............................................................................................................... - 15 -11.9 枚举类型301 ............................................................................................................ - 15 -11.10 用typedef定义的类型304 .................................................................................... - 16 -第十二章位运算308 ................................................................................................................ - 16 -12.1 位段315 .................................................................................................................. - 16 -第十三章文件319.................................................................................................................... - 17 -13.1 文件319 ................................................................................................................... - 17 -13.2 文件的分类319 ....................................................................................................... - 17 -13.3 C语言对文件的处理方法319 ................................................................................. - 17 -13.4 文件结构体类型321 ................................................................................................ - 17 -13.5 文件结构体数组和指针321 .................................................................................... - 18 -13.6 文件的操作321 ....................................................................................................... - 18 -13.7 文件的定位333 ....................................................................................................... - 20 -13.8 出错检测335 ........................................................................................................... - 20 -13.9 小结336 ................................................................................................................... - 21 -第十四章C++对C的扩充338 .............................................................................................. - 22 -14.1 C++的特点338 ......................................................................................................... - 22 -14.2 C++的输入输出339 ................................................................................................ - 22 -14.3 C++的输出cout ........................................................................................................ - 22 -14.4 C++的输入cin 341 .................................................................................................. - 23 -14.5 函数的重载342 ....................................................................................................... - 24 -14.6 带缺省参数的函数344 ............................................................................................ - 24 -14.7 变量的引用类型345 ................................................................................................ - 25 -14.8 内置函数348 .......................................................................................................... - 26 -14.9 作用域运算符349.................................................................................................... - 27 -14.10 动态分配运算符new349 ....................................................................................... - 27 -14.11 撤销内存运算符delete250 ................................................................................... - 27 -第十五章C++的面向对象基础352 ................................................................ 错误!未定义书签。
c程序设计读书笔记

c程序设计读书笔记《C 程序设计读书笔记》说起 C 程序设计,那可真是让我又爱又恨。
最近读了一本关于 C 程序设计的书,真的是收获满满,也感慨颇多。
这本书一开始就给我来了个“下马威”,各种概念、术语一股脑儿地涌过来,差点没把我给淹没。
不过,我这人就是有股子倔劲儿,越是难,我还越要搞明白。
就拿变量这个概念来说吧,以前总觉得这玩意儿神秘兮兮的。
但在这本书里,作者用了特别通俗易懂的方式给我讲明白了。
比如说,变量就像是一个个小盒子,我们可以把不同的数据放进去,给它们贴上标签,然后在需要的时候取出来用。
这比喻简直太形象了,一下子就让我明白了变量的作用。
还有指针,这可真是个让人头疼的家伙。
一开始,我怎么都搞不懂它到底是干啥的。
书里讲,指针就像是一个能指向其他盒子的箭头。
通过这个箭头,我们能更灵活地操作数据。
为了搞清楚指针,我可是费了好大的劲。
我不停地在纸上画图,模拟各种指针的操作,一会儿把这个数据指过去,一会儿又指回来,就像在玩一场复杂的“数据捉迷藏”。
在讲到函数的时候,书里的例子特别有趣。
作者说函数就像是一个小机器,我们给它输入一些材料,它就能按照特定的规则给我们输出我们想要的东西。
比如说,我们可以写一个函数来计算两个数的和。
每次调用这个函数,就像是把两个数放进这个小机器里,然后等着它吐出计算结果。
我自己动手写了几个简单的函数,那种成就感,简直没法形容。
还有循环结构,这可真是个节省力气的好东西。
比如说,要打印 1到 100 的数字,如果不用循环,那得写 100 行代码,多累人啊!但有了循环,几行代码就能搞定。
就像让电脑不停地重复做一件事情,直到满足某个条件为止。
在阅读的过程中,我也遇到了不少挫折。
有时候,一个代码怎么都运行不对,错误提示看得我眼花缭乱,心里那个烦躁啊!我不停地检查代码,眼睛都快看花了,还是找不出问题所在。
这时候,真想把电脑扔一边去,大喊一声:“我不干了!” 但冷静下来之后,还是耐着性子一行一行地找,终于发现原来是一个小小的标点符号写错了。
c程序设计读书笔记

c程序设计读书笔记最近迷上了 C 程序设计,这一钻进去,还真像是走进了一个奇妙的代码世界。
我读的这本书,没有那种让人望而生畏的高深术语,反倒是用一种特别接地气的方式,一步一步地引导我走进 C 程序的神秘大门。
刚开始的时候,我就像一个在黑暗中摸索的小孩,对那些个符号和语法规则感到一头雾水。
比如说,那个简单的“int main()”,我就在心里嘀咕:“这到底是啥意思呀?”但随着一页一页地读下去,慢慢地,好像有一道光照了进来。
书中讲到变量的定义和使用时,那可真是让我有种恍然大悟的感觉。
以前我总觉得变量这东西很抽象,不好理解。
但书上举了个特别好玩的例子,就像是说我们有一个盒子,这个盒子可以装不同的东西,有时候是苹果,有时候是香蕉,而这个盒子的名字就是变量名。
我们通过给这个盒子贴上不同的标签,就能知道里面装的是什么。
比如说,“int num =5;”,这里的“num”就是盒子的名字,“int”表示这个盒子只能装整数,而“5”就是此刻装在里面的东西。
这么一解释,我瞬间就明白了,原来变量就是这么一回事儿!还有指针的部分,一开始我真的被它搞得晕头转向。
书上说指针就像是一个能指向其他盒子的箭头。
我就在想,这箭头到底指向哪儿啊?后来经过书中详细的解释和生动的例子,我才渐渐搞清楚。
比如说,我们有两个变量“int a =10;”和“int p; p =&a;”,这里的“p”就是那个箭头,“&a”表示“a”的地址,也就是说“p”这个箭头指向了“a”所在的位置。
通过“p”,我们就能访问到“a”的值。
这感觉就像是通过一个神秘的通道,直接到达了宝藏所在的地方。
在讲到数组的时候,书里的例子更是让我印象深刻。
想象一下,我们有一排小格子,每个格子都有一个编号,从 0 开始。
我们可以把不同的数据放进这些格子里。
比如说,“int arr5 ={1, 2, 3, 4, 5};”,这就像是在这排小格子里依次放了 1 到 5 这几个数字。
然后我们可以通过“arr0”访问第一个格子里的数字 1,通过“arr1”访问第二个格子里的数字 2,以此类推。
c语言程序设计读书笔记

c语言程序设计读书笔记C语言程序设计是一门广泛应用于计算机科学和软件开发领域的编程语言。
学习C语言程序设计可以帮助我们掌握基本的编程思想和技巧,为进一步学习其他编程语言打下坚实的基础。
下面是我对C语言程序设计的一些读书笔记,希望能够帮助你更好地理解和应用这门语言。
1. C语言的基本语法,C语言的基本语法包括数据类型、变量、常量、运算符、控制语句和函数等。
掌握这些基本语法是编写C程序的基础。
2. 数据类型和变量,C语言提供了多种数据类型,包括整型、浮点型、字符型和指针等。
了解不同数据类型的特点和使用方法,能够更好地选择适合的数据类型来存储和处理数据。
3. 输入输出函数,C语言提供了一些输入输出函数,如printf和scanf等。
这些函数可以实现用户输入和程序输出的功能,是我们与程序进行交互的重要方式。
4. 控制语句,C语言提供了多种控制语句,如条件语句(if-else语句)、循环语句(for循环、while循环和do-while循环)和跳转语句(break语句和continue语句)。
掌握这些控制语句可以实现程序的流程控制和逻辑判断。
5. 数组和字符串,数组是一种能够存储多个相同类型数据的数据结构,字符串则是字符数组的一种特殊形式。
了解数组和字符串的使用方法,能够更好地处理和操作多个数据。
6. 函数,函数是C语言程序的基本组成单元,通过函数可以将程序分成多个模块,提高代码的可读性和可维护性。
了解函数的定义、调用和参数传递等概念,能够更好地组织和管理程序。
7. 指针,指针是C语言中一个重要的概念,它可以用来访问和操作内存中的数据。
了解指针的概念和使用方法,能够更好地理解C语言的底层原理和实现机制。
8. 文件操作,C语言提供了一些文件操作函数,如fopen、fclose、fread和fwrite等。
通过文件操作函数,我们可以读取和写入外部文件,实现数据的永久保存和共享。
9. 错误处理和调试,在程序开发过程中,难免会出现错误和bug。
c程序设计读书笔记

c程序设计读书笔记《C 程序设计读书笔记》在学习 C 程序设计的这段时间里,我仿佛走进了一个充满神秘和挑战的代码世界。
手中的这本C 程序设计教材,就像是一把神奇的钥匙,不断为我开启一扇又一扇通往编程奥秘的大门。
还记得刚开始接触 C 语言的时候,我满怀着好奇与期待,却被那些复杂的语法和符号搞得晕头转向。
书上的那些代码示例,对我来说就像是外星文字一样陌生。
但我并没有被这些困难吓倒,而是硬着头皮,逐行逐句地去理解、去分析。
比如说,书中讲到变量的定义和使用时,那可真是让我费了好大一番功夫。
我就像一个在黑暗中摸索的孩子,努力想要抓住那一丝光明。
书上说:“变量就像是一个盒子,你可以把不同的数据装进去。
”于是,我在自己的代码中试着创建了一个整型变量“int age =20;”,心里想着,这就相当于我有了一个能装整数的小盒子,名字叫“age”,里面装着 20 这个数字。
可当我想要对这个变量进行操作,比如进行加法运算“age= age +5;”时,却总是出错。
我一遍又一遍地检查代码,眼睛都快看花了,才发现原来是少了一个分号。
哎呀,这一个小小的分号,可把我折腾得不轻!还有函数这一部分,那更是让我又爱又恨。
函数就像是一个个小模块,可以把复杂的任务分解成简单的步骤。
书上的示例中,一个计算两个数之和的函数“int add(int a, int b) { return a + b; }”看起来简单明了。
我心想,这多好啊,以后要计算加法,直接调用这个函数就行了。
可当我自己动手写函数的时候,却总是搞不清楚参数的传递和返回值的处理。
有一次,我写了一个函数想要返回两个数中的最大值,结果返回的总是错误的值。
我苦思冥想,最后发现是在函数内部的比较逻辑出了问题。
指针这个概念,更是让我头疼了好久。
书上说指针就像是一个能指向其他变量的箭头。
我当时就想,这箭头也太调皮了,总是指不对地方。
比如说,通过指针来修改一个变量的值,我总是搞不清楚什么时候该用“”,什么时候该用“&”。
C语言程序设计笔记

C语言程序设计笔记c语言程序设计的概论:什么是程序设计:编程环境程序设计就是用户告诉计算机按程序员的思路一步一步的去工作而c语言程序设计就是,通过c这门语言与计算机通信,并说计算机应当如何工作在微机上广泛使用的c语言编译系统有microsoftc、turboc、borlandc等。
虽然它们的基本部分都是相同的,但还是有一些差异,所以请大家注意自己所使用的c编译系统的特点和规定(参阅相应的手册)。
我们所有使用的环境是win-tc(windows2000操作系统)。
直观的c程序基准1.1main(){printf(“thisisacprogram.\\n”);}本程序的促进作用就是输入一行信息:thisisacprogram特别注意:每一个c程序都必须有main()函数函数体内由大括弧{}括起来大括弧内每条语句后必须有一个分号符号和字母,都必须用半角格式的(必须转换至英文输入法输出符号字母)printf()输入函数\\n转义字母,代表换行(回车)/**/注解符令试一试:参考例题,撰写一个c程序,输入以下信息:*******************verygood!*******************printf(“******\\n”);\\nGabarret字符,代表下划线数据类型1.2.3.整型:12,0,-3实型:4.6,-1.23字符型:’a’,‘b’算术运算符1.2.3.4.5.+乘法运算符-加法运算符*乘法运算符/乘法运算符%求余运算符算术运算符的优先级同数学:先括号,后乘除,再加减题目:求两个数的余数的程序什么就是变量:其值可改变的量称为变量,也把变量看成用来装数据的容器变量的作用:减少程序的有效率度,可以说道任何一个程序基本上都使用了变量度如何定义变量:数据类型变量名;inta;数据类型局部变量1,局部变量2,?局部变量n;floata,b,c;charc1,c2;变量命名规则:只能以字母、数字、下划线三种字符组成,且第一个字符必须为字母或下划线。
C++程序设计——读书笔记
Box::Box(int h, int w, int len):height(h),width(w),length(len){} 这样写是和下面是一样的,不过上面的更方便简练 Box::Box(int h, int w, int len){heigh = h; width = w; length = len;}
读书笔记——xxb
1. 虚基类的初始化:如果虚基类中定义了带参数的构造函数,而且没有定义默 认构造函数,则在其所有派生类中,通过构造函数的初始化表列对虚基类进 行初始化
2. 在最后的派生类中,不仅要负责对其直接基类进行初始化,还要负责对虚基 类初始化
3. 由于虚基类在派生类中只有一份数据成员,所以这份数据成员的初始化必须 由派生类直接给出
3. 虚函数实现的动态多态性:同一类族中不同类的对象,对同一函数调用作出 不同的响应
4. 虚函数使用方法:
1. 在基类用virtual声明成员函数为虚函数,在派生类中重新定义此函数,为它赋予新 的功能,在类外定义虚函数时,不必再加 virtual
2. 在派生类中重新定义此函数要求函数名、函数类型、函数参数个数和类型全部与 基类的虚函数相同
2. 面向对象程序设计四个主要特点:抽象、封装、继承、多态性 3. 在面向对象的程序设计中,最关键的工作是类的设计所有的数据和对数据的
操作都体现在类中 4. 接口和实现分离,类的公用接口与私有实现分离形成了信息隐蔽,当接口与
实现分离时,只要类的接口没有改变,对私有实现的修改不会影响程序的其 他部分 5. 类库包括两部分:1.类声明头文件,2.已经编译过的成员函数的定义,也就是 目标文件 6. 对象(成员变量)、方法(成员函数)、消息(就是函数调用)。
c语言读书笔记
C语言读书笔记最近看了两本关于c语言的课外书《c语言程序设计》和《程序设计基础》。
从这两本书中学到了不少的东西。
这两本书的内容循序渐进,从具体的样例入手,逐步给出了规范化的语言,使得我更好的理解掌握相关的c语言知识。
对于编译,内存等概念,也采用了类比的方法讲解,是我更好更牢固的掌握了这些知识。
此外书中还采用了大量的图例,似的抽象的问题得以具体化。
书中对于例题的讲解,采用了很多的简单语义阐述了相对复杂的语法内容,并且用一些应用实例结合着日常应用,使得我学到了不仅仅是简单的编程,更是能应用到实际之中。
而且在Vc++6.0在Windows环境里,而且不需要辅助的软件,可以直接用汉字,相比较而言更容易学习。
书中的内容较为系统,对概念进行了较为详细的阐述,书中主要讲述了以下几点:(1)c语言和c语言标准的形成,以及程序设计的基本概念。
这些使得我更加的了解了c语言这门课程;(2)阐述了c语言的基本数据类型,运算符和表达式等内容,并给出了运算符的优先级和结合型总表,其中还讲述了程序设计中的“副作用”的概念和实例。
看过这些也使得我的c语言基础知识更加的牢固。
(3)阐述了可执行语句的和程序的执行流程,并且详细的简绍了枚举类型,数组类型,结构类型,指针类型,联合类型,并且着重的说明了符号的使用方法和数据库表和链表。
看过这章之后,我对于c语言中的各种符号运用的更加熟练。
(4)对于自定义函数的概念和方法,并对于系统函数进行了小小的总结。
使得我的c语言学习更加的规范化,同时学会了预处理程序和预处理命令有关的内容,虽然用起来不是很熟练,但是学会之后发觉c语言相当的神奇和有意思。
在《程序设计基础》一书中更是有着三套全国计算机等级考试的模拟题和答案解析,做过之后,使我更加了解了等级考试的相关知识,这样让我更好的开始准备等级考试。
看过这些书之后,我感觉我的c语言的编程水平又有所提高,而且也学到了课本之外的东西,这些对于我有很大的提升。
C程序设计(第五版)谭浩强学习笔记—重点及易错点(第7章-函数)
C程序设计(第五版)谭浩强学习笔记—重点及易错点(第7章-函数)⽤函数实现模块化程序设计⽬录⼀、定义函数定义函数应包括以下⼏个内容:(1) 指定函数的名字,以便以后按名调⽤。
(2) 指定函数的类型,即函数返回值的类型。
(3) 指定函数的参数的名字和类型,以便在调⽤函数时向它们传递数据。
对⽆参函数不需要这项。
(4) 指定函数应当完成什么操作,也就是函数是做什么的,即函数的功能。
这是最重要的,是在函数体中解决的。
类型名函数名(形式参数表列){函数体}例如:int max(int x,int y){ int z; //声明部分z=x>y?x:y; //执⾏语句部分return(z);}当然函数可以没有返回值或者形式参数。
⼆、调⽤函数1.⾸先要对要调⽤的函数进⾏声明2.采⽤合适的⽅式调⽤函数(1). 函数调⽤语句 把函数调⽤单独作为⼀个语句。
如printf_star(); 这时不要求函数带回值,只要求函数完成⼀定的操作。
(2). 函数表达式 函数调⽤出现在另⼀个表达式中,如c=max(a,b); 这时要求函数带回⼀个确定的值以参加表达式的运算。
(3). 函数参数 函数调⽤作为另⼀个函数调⽤时的实参。
如m=max(a,max(b,c));,⼜如:printf (″%d″, max (a,b));3.实参和形参间的数据传递:实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,⽽不能由形参传给实参。
实参和形参在内存中占有不同的存储单元,实参⽆法得到形参的值。
例如:{ float add(float x, float y); //对add函数作声明float a,b,c;printf("Please enter a and b:"); //提⽰输⼊scanf("%f,%f",&a,&b); //输⼊两个实数c=add(a,b); //调⽤add函数printf("sum is %f\n",c); //输出两数之和return 0;}float add(float x,float y) //定义add函数{ float z;z=x+y;return(z); //把变量z的值作为函数值返回}三、函数的递归调⽤在调⽤⼀个函数的过程中⼜出现直接或间接地调⽤该函数本⾝,称为函数的递归调⽤。
C程序的设计语言读书笔记与课后答案
通过一周多的学习,大体看完了《C程序设计语言》这本书,这是我的笔记。
(一)读这本书的目标是什么?(1)、读完后必须深入了解C的语法以及内涵,并且达到熟练应用。
(2)、通过练习习惯一种编程风格,深入理解指针,数组,结构体以及内存分配。
(3)、通过练习锻炼逻辑思维能力(4)、学完后编程要上一个层次,自己能够编写出有用的C代码。
(二)这本书哪个部分是我要重点看的?(1)、指针、数组、结构体(2)、内存分配(3)、输入输出及接口问题(三)读这本书我有什么收获?3、1 对于本书的感受这是一本经典的C语言书籍,与其他语法书不同的是所有语法都是用例题来讲的,通过例子理解并练习语法,另外这本书的习题比较难做,不是简单的考语法,而是一些有意义的习题。
通过做练习发现还是有所收获的。
本书中与Linux联系密切,用C重写了许多简化版的Shell命令如:grep,ls,cat,sort,tail,cp等等。
3、2 收获:因为本来就有C语言的基础知识,所以对于语法问题基本没有多学新的知识,但是仍然对以下几点有了新的了解:1)、位字段,不管是通过直接设置位字段还是用以前的位计算,都有新的了解与认识。
2)、指针。
建立了“指针为大”的思想,对于应用指针进行类型转换以及运算都有了新的认识。
比如:int a=5,char* p, p=(char)&a,*p = ‘c’;建立这样的过程对于更加复杂的指针转换就理解了。
3)、结构体。
通过第六章对于二叉树以及哈希表的应用深入了解结构体,并且通过调试程序观察递归过程,同时对递归有了一定的理解。
4)、内存分配malloc函数,通过第八章的学习对malloc函数的内部进行分析,理解了动态内存管理机制。
3.3 学习的程度以及那些地方存在不足:对于C的基本语法已经差不多了,但是否达到了当初的目标即在编程方面上一个层次,这我并不敢确定,因为到现在为止这本书上的习题有些我都没有搞定,又看了一下以前的有关C的东西是觉得已经好了许多了,最起码对于很麻烦的程序不再感到畏惧了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
『C程序设计』读书笔记关键字:c语言原作者姓名:loose_went文章原出处:写在前面:《C程序设计》可以说是一本再基础不过的编程书了,但每读一遍的感觉却都是不同的,可以说,每读一遍,都会有很多新的收获。
真所谓老书再读,回味无穷啊!此笔记是《C程序设计》谭浩强编著,清华大学出版社出版。
除了将书中的重点知识点记下来外,也加入了我对知识点的理解,我想这一点是读书笔记的重要性所在。
第一章概述第二章数据类型、运算符与表达式第三章最简单的c程序设计第四章逻辑运算和判断选取控制第五章循环控制第六章数组第七章函数第八章预编译处理第九章指针第十章结构体与共用体第十一章位运算第十二章文件第一章概述1. C语言的特点①语言简洁、紧凑,使用方便、灵活。
共有32个关键字,9种控制语句。
②运算符丰富,公有34种运算符。
③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。
④具有结构化的控制语句(如if…else、while、do…while、switch、for)⑤语法限制不太严格,程序设计自由度大。
⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。
⑦生成目标代码质量高,程序执行效率高。
⑧可移植性好。
2. C语言的用途C虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。
现在很多大型应用软件也用C编写。
Top of Page 第二章数据类型、运算符与表达式1. C的数据类型C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2.常量与变量常量其值不可改变,符号常量名通常用大写。
变量其值可以改变,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。
否则为不合法的变量名。
变量在编译时为其分配相应存储单元。
3.整型数据整型常量的表示方法:十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e。
整型变量分为:基本型(int)、短整型(short int)、长整型(long int)和无符号型。
不同机器上各类数据所占内存字节数不同,一般int型为2个字节,long型为4个字节。
4.实型数据实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:0.12、.123、123.、0.0等。
指数形式如123e3代表123×10的三次方。
实型变量分为单精度(float)和双精度(double)两类。
在一般系统中float型占4字节,7位有效数字,double型占8字节,15~16位有效数字。
5.字符型数据字符变量用单引号括起来,如'a','b'等。
还有一些是特殊的字符常量,如'\n','\t'等。
分别代表换行和横向跳格。
字符变量以char 来定义,一个变量只能存放一个字符常量。
字符串常量是由双引号括起来的字符序列。
这里一定要注意'a'和"a"的不同,前者为字符常量,后者为字符串常量,c规定:每个字符串的结尾加一个结束标志'\0',实际上"a"包含两个字符:'a'和'\0'。
6.数值型数据间的混合运算整型、字符型、实型数据间可以混合运算,运算时不同类型数据要转换成同一类型再运算,转换规则:char,short -> int -> unsigned -> long -> double <- float7.运算符和表达式c运算符包括:算数运算符(+ - * / % )关系运算符( > < == >= <= != )逻辑运算符( ! && || )位运算符( << >> ~ | ^ & )赋值运算符(= )条件运算符(? : )逗号运算符( , )指针运算符( * & )求字节数( sizeof )强制类型转换(类型)分量运算符(. -> )下标运算符([ ] )其它运算符(如函数调用运算符( ) )自增自减运算符(++ -- )注意:++i和i++的不同之处,++i使用i之前先使i加1,i++使用i之后,使i加1。
逗号表达式的求解过程:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值。
Top of Page 第三章最简单的c程序设计1.c的9种控制语句:if() ~ else~for()~while()~do~while()continuebreakswitchgotoreturn程序的三种基本结构:顺序结构,选择结构,循环结构2.数据输出c语言不提供输入输出语句,输入输出操作是由c的库函数完成。
但要包含头文件stdio.h。
putchar( ) 向终端输出一个字符printf( )的格式字符:① d格式符用来输出十进制整数%d 按整型数据的实际长度输出%md 使输出长度为m,如果数据长度小于m,则左补空格,如果大于m,则输出实际长度%ld 输出长整型数据② o格式符以八进制形式输出整数③ x格式符以十六进制形式输出整数④ u格式符用来输出unsigned型数据,以十进制形式输出⑤ c格式符用来输出一个字符⑥ s格式符输出一个字符串%s 输出实际长度字符串%ms 输出的串占m列,如果串长度小于m,左补空格,如果大于m,实际输出%-ms输出的串占m列,如果串长度小于m,右补空格,%m.ns 输出占m列,但只取字符串中左端n个字符并靠右对齐%-m.ns m、n含义同上,靠左对齐,如果n>m,则m自动取n值⑦ f格式符以小数形式输出实数%f 整数部分全部输出,小数部分输出6位%m.nf 输出数据共占m列,其中有n位小数。
如果数值长度小于m,左补空格%-m.nf 同上,右补空格⑧ e格式符以指数形式输出实数%e 系统指定6位小数,5位指数(e+002 )⑨ g格式符输出实数,根据数值大小,自动选f格式或e格式3.数据输入getchar( ) 从终端输入一个字符scanf( 格式控制,地址列表) 标准C scanf中不使用%u,对于unsigned型数据,以%d或%o或%x 输入。
%后的*,用来跳过它相应的数据。
输入数据时不能规定精度如scanf( "%7.2f", &a );是不合法的。
Top of Page第四章逻辑运算和判断选取控制1.关系运算符:c提供6种关系运算符(> < <= >= == != )前四种优先级高于后两种。
2. If语句C提供了三种形式的if语句If(表达式) 语句If(表达式) 语句1 else 语句2If(表达式1) 语句1Else if(表达式2) 语句2…else 语句n3.条件运算符(a>b)?a:b 条件为真,表达式取值a,否则取值b4. Switch语句Switch(表达式){case 常量表达式1:语句1; break;case 常量表达式2:语句2; break;…case 常量表达式n:语句n; break;default :语句n+1;}Top of Page 第五章循环控制1.几种循环语句goto语句(现已很少使用)while语句先判断表达式后执行语句do-while语句先执行语句后判断表达式for语句2. Break语句和continue语句Break语句用于跳出循环,continue用于结束本次循环。
Top of Page 第六章数组1.一维数组c规定只有静态存储(static)和外部存储(extern)数组才能初始化。
给数组初始化时可以不指定数组长度。
2.二维数组3.字符数组部分字符串处理函数puts(字符数组) 将一个字符串输出到终端。
gets(字符数组) 从终端输入一个字符串到字符数组,并且得到一个函数值,为该字符数组的首地址strcat(字符数组1,字符数组2) 连接两个字符数组中的字符串,数组1必须足够大。
Strcpy(字符数组1,字符串2) 将字符串2拷贝到字符数组1中。
Strcmp(字符串1,字符串2) 比较字符串,相等返回0,字符串1>字符串2,返回正数,小于返回负数。
Strlen(字符数组) 求字符串长度。
Strlwr( 字符串) 将字符串中的大写字母转换成小写Strupr( 字符串) 将字符串中的小写字母转换成大写以上是一些比较常用的字符串处理函数。
Top of Page 第七章函数1.关于形参和实参的说明① 在函数被调用之前,形参不占内存② 实参可以是常量、变量或表达式③ 必须指定形参的类型④ 实参与形参类型应一致⑤ 实参对形参的数据传递是"值传递",即单向传递2.函数返回值如果想让函数返回一个值,在函数中就要用return语句来获得,在定义函数时也要对函数值指定类型,如果不指定,默认返回整型。
3.函数调用1)注意在函数调用时实参和形参的个数、类型应一一对应。
对实参表求值的顺序是不确定的,有的系统按自左至右,有的系统则按自右至左的顺序。
这一点要注意。
2)函数调用的方式:函数语句,函数表达式,函数参数3)如果主调函数和被调函数在同一文件中,并且主调函数在前,那么一般要在主调函数中对被调函数进行说明。
除非:(1)被调函数的返回值类型为整型或字符型(2)被调函数出现在主调函数之前。
4)对函数的说明和定义是不同的,定义是指对函数功能的确立,包括指定函数名,函数值类型,形参及其类型、函数体等。
说明则只是对已定义的函数返回值类型进行说明,只包括函数名、函数类型以及一个空的括弧,不包括形参和函数体。
5)c语言允许函数的递归调用(在调用一个函数的过程中又出现直接或间接的调用该函数本身)。
4.数组作为函数参数1)数组元素作为函数参数和一般变量相同2)数组名作参数应该在主调和被调函数分别定义数组,形参数组的大小可以不定义。
注意:数组名作参数,不是单向传递。
3)多维数组作参数,在被调函数中对形参数组定义时可以省略第一维的大小说明,但不能省略第二维或更高维的说明。
5.局部变量和全局变量从变量作用域角度分,变量可分为局部变量和全局变量。
1)内部变量(局部变量)在一个函数内定义,只在函数范围内有效的变量。
2)外部变量(全局变量)在函数外定义,可以为本文件其它函数所共用,有效范围从定义变量的位置开始到本文件结束。
建议尽量少使用全局变量,因为它在程序全部执行过程中都占用资源,而且使函数的通用性降低了。
如果在定义外部变量之前的函数要想使用该外部变量,则应在该函数中用extern作外部变量说明。