- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言读书报告
C语言读书报告
C语言在本科一年级时就已经学过,当时学习后主要是以编写简单的循环和判断等结构化程序为目标,用C来解决一个数学上的一个简单问题。在后面C的精华,指针,只是稍作了解,更不用说复杂的文件和结构体等操作。这次重读,也是以指针、文件、内存、结构,这四个方面为主。使用的是《C PRIMER PLUS》。
C语言是面向过程的编程语言,有以下几个优点:
1、设计特性
它的设计使得用户可以自然地采用自顶向下的规划、结构化的编程,以及模块化设计。这种做法使得编写出的程序更加可靠、更易懂。
2、高效性
3、可移植性
各种操作系统都有其自己的C编译器,这使得C的移植比其他语言更加容易。
4、强大的功能和灵活性
其他很多语言编译器,如FORTRAN、Perl、Python等都是用C来编写的。
目录
C语言读书报告 1
一 数组与指针 2
1.1 数组 2
1.2 指针 2
1.3 指针与一维数组 3
1.4 指针与多维数组 3
1.5 指针数组与数组指针 3
1.6 指针变量和指针常量 3
二 字符与字符串 4
2.1 单字符的输入/输出 4
2.2 字符串的定义 5
2.3 字符串输入 scanf() gets() fgets() 5
2.4 字符串输出 puts() fputs() printf() 5
2.5 自定义输出函数 6
2.6 sprintf()函数 6
2.7 把字符串转换为数字 7
三 文件操作 8
3.1 什么是文件 8
3.2 文件的打开关闭 8
3.3 文件IO 9
3.4 格式化读写函数fprintf()与fscanf() 10
3.5 字符串读写函数fgets()和fputs() 10
3.6 数据块读写函数fwrite()与fread() 10
3.7 随机存取 11
四 内存管理 12
4.1 内存分配方式 12
4.2 分配内存:malloc()和free() 12
一 数组与指针
1.1 数组
一维数组像一个指定大小的向量,说像,是因为放在数组中的数据按顺序排成一排,每一个下标对应一个数值(整形、浮点型、字符型),不像的地方在于向量大小可以伸缩,C++中的vector就是这样一个可以随意伸缩的向量。
关于一个初始化的问题。数组可以在声明时进行初始化,初始化后大小固定,可以在[]中指定数组大小,在声明时初始化,如果初始化元素没有达到指定的大小,后面不足的默认为0。如果声明时不指定大小,即[]中的值缺省,则必须在声明时进行初始化,编译器会根据列表中的数值数目来确定数组大小。
赋值问题。如果要对数组中的所以数进行赋值或打印,那么只能采用循环赋值的方式,通常采用以下方式
Int day[]={31,32,33,34,23,30,32,12,14};
Int index;
For(index =0;indexsizeof (day)/sizeof(day[0];index++)
Printf(“num[%d]:%d”,day[index]);
控制语句使用sizeof,让计算机来计算数组大小,避免出错。
二维数组。int array[ROW][VOL],内部数据排放可以理解成一个矩阵,用某行某列指定数组中的一个元素。也可以将其理解成多个一维数组的排放。与一维数组类似,只是初始化时每一行元素用{}圈起,当然,{}中的元素也可以小于列大小,这样其他的就默认为0,二维数组的赋值取值往往使用两个for循环。
1.2 指针
地址运算符 通过这个运算符得到的是变量在程序虚拟空间的地址
后跟一个变量名,给出该变量的地址
* 间接运算符(或叫取值运算符) 用来获取地址中存放的数值
当后面跟一个指针名或地址时,*给出存储在被指向地址中的数值
Int a = 3;
Int *b = a;
上例中a是一个变量,a取得a的地址,在这个地址里放着a的值,将这个地址赋给指针b,这时指针b就指向a的地址,上面是指针的初始化。
那么什么是指针呢?指针是一个其数值为地址的变量。
1.3 指针与一维数组
数组名就是一个地址,这个地址存放的是数组的第一个元素,如下
Int arr[5] = {1,2,3,4,5};
Arr = arr[0];
Int *ptr = arr;
1.4 指针与多维数组
Int zippo[4][2];
Zippo = zippo[0] = zippo[0][0]
数组名Zippo同时也是数组首地址,其中zippo[0]表示包含两个int的数组,所以zippo也是包含两个int的数组的地址
Zippo 第1个大小为2个int的元素的地址 Zippo+2 第3个大小为2个int的元素的地址 *(zippo+2) 第3个元素,即包含
文档评论(0)