详见微软技术资源库 (http://msdn.microsoft.com/zh-cn/library/dwhawy9k.aspx#example)

文件读写最常用的函数

- 字符读写函数:         fgetc 和 fputc

- 字符串读写函数:     fgets 和 fputs

- 数据块读写函数:     fread 和 fwrite

- 格式化读写函数:    fscanf 和 fprintf

以上函数都要求包含 stdio.h

文件定位

rewind(文件指针);                             //把文件内部的位置指针移到文件首部;

fseek(文件指针,位移量,起始点);     //用于移动文件内部位置指针;

feof(文件指针);                                   //判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则返回0;

ferror(文件指针);                                //检查文件在用各种输入输出函数进行读写时是否出错。如ferror返回值为0表示正常,否则表示有错

clearerr(文件指针);                         //本函数用于清除出错标志和文件结束标志,使它们为0;

位运算符

&       与

|         或

^        异或

~       取反

<<    左移

>>    右移

位域 (http://baike.baidu.com/view/1256879.htm) -------个人感觉用到的地方不多

printf函数

scanf函数

for 注意事项

数组

在数组名作为函数参数时所进行的传送只是地址的传送,也就是说把实参数组的首地址赋予形参数组名。

形参数组名取得该首地址之后,也就等于有了实在的数组。(此时形参数组中值的变化会导致实参数值中值的变化)

---------------------------------------------------------------------------------------------------

关于被调函数的说明

如果被调函数的返回值是整型或字符型时,可以不对被调函数做说明,直接调用。

这时系统将自动对被调函数返回值按整型处理。

register变量

为了提高效率,C语言允许将局部变量的值防砸iCPU中的寄存器中,这种变量叫“寄存器变量”,用关键字register作声明。

由于受硬件寄存器长度的限制,所以寄存器变量只能是char、int或指针型。
寄存器说明符只能用于说明函数中的变量和函数中的形参,因此不允许将外部变量或静态变量说明为"register"。
        register型变量常用于作为循环控制变量,这是使用它的高速特点的最佳场合。比较下面两个程序的运算速度。

int fac(int n)
{register int i,f=1;for(i=1;i<=n;i++)f=f*ireturn(f);
}
main()
{int i;for(i=0;i<=5;i++)printf("%d!=%d\n",i,fac(i));
}

说明:

1)只有局部自动变量和形式参数可以作为寄存器变量;

2)一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量;

3)局部静态变量不能定义为寄存器变量。

#ifdef

#ifdef 标识符

程序段1

#else

程序段2

#endif

它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。

static
全局变量和全局静态变量的区别
    1)全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在一个文件内定义的全局变量,             在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。
    2)全局静态变量是显式用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。

静态局部变量有以下特点:
    1)该变量在全局数据区分配内存;
    2)静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;
    3)静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;

4)它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;

C程序设计(谭浩强)--学习笔记相关推荐

  1. 《C语言程序设计》谭浩强-学习笔记以及课后习题答案(考前复习/考研/专升本)

    此笔记是几年前为了本人考试而学而写,今日回首感慨良多,便把尘封多年在旧电脑中的学习笔记翻出来分享给大家 此笔记参考书籍: <C语言程序设计>谭浩强 根据前九章内容主要知识点进行梳理 如果有 ...

  2. C程序设计谭浩强版总结笔记

    结构体 注:结构体类型的名字是由一个关键字struct和结构体名组合而成的(例如struct Student).结构体名是由用户指定的,又称"结构体标记",以区别于其他结构体类型. ...

  3. C程序设计 谭浩强 第九章

    结构体 注:结构体类型的名字是由一个关键字struct和结构体名组合而成的(例如struct Student).结构体名是由用户指定的,又称"结构体标记",以区别于其他结构体类型. ...

  4. C程序设计谭浩强第五版课后答案 第三章习题答案

    C语言程序设计谭浩强第五版课后答案第三章 1.假如我国国民生产总值的年增长率为7%, 计算10年后我国国民生产总值与现在相比增长多少百分比.计算公式为p=(1+r)np = (1+r)^np=(1+r ...

  5. C++面向对象的程序设计谭浩强 第六章课后题

    以往章节 C++面向对象的程序设计谭浩强 第二章课后题 C++面向对象的程序设计谭浩强 第三章课后题 C++面向对象的程序设计谭浩强 第四章课后题 C++面向对象的程序设计谭浩强 第五章课后题 C++ ...

  6. C程序设计(谭浩强第五版)总结

    C程序设计(谭浩强第五版)总结 本篇文章主要是总结谭浩强第五版C语言书上的重点和易漏点的知识点,其目的主要是给高校期末考试的同学们点参考.本文所参考的书籍是谭浩强的<C程序设计(第五版)> ...

  7. C语言学习笔记(C程序设计-谭浩强)

    入门: 计算机程序: 一组计算机能够识别和执行的指令.计算机的每一个操作都是根据指令进行的,计算机的一切操作都是由程序控制的 计算机指令:指挥机器工作的指示和命令. 指令包含操作码和操作数,操作码决定 ...

  8. C程序设计-谭浩强 第三版-学习笔记第1章 C语言概述

    第一章 C语言概述 1.C语言历史背景 C语言是在B语言的基础上发展起来的,兼具一般高级语言和低级语言的优点,可用来编写系统软件或应用软件. 1972-1973年,贝尔实验室在B语言基础上设计出C语言 ...

  9. C程序设计-谭浩强 第三版-学习笔记 第2章 程序的灵魂 算法

    第 2 章 算法 --程序的灵魂 程序 = 算法 + 数据结构 (沃思,计算机科学家) 一个程序应该包括两方面: 对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构(data stru ...

最新文章

  1. iOS宏定义的使用与规范
  2. 求一段内存中的字节型数据的和
  3. python发送qq邮件列表_Python SMTP发送邮件
  4. 核心频率个加速频率_流处理器、核心频率、 位宽……这些显卡参数你知道吗?—— 电脑硬件科普篇(八)...
  5. koa --- seesion实现登录鉴权
  6. linux主频限制服务,linux抵御DDOS攻击 通过iptables限制TCP连接和频率
  7. 【C语言】构建一个校园交通查询系统程序。能够规划出任意出发地和目的地之间的最短路径。...
  8. java访问oracle集群,JAVA查询Oracle数据库集群连接字符串
  9. nodejs进入mysql数据库_nodejs简单访问及操作mysql数据库的方法示例
  10. 遇到的问题:uboot下,关闭串口前需要printf打印一个“UART BUS OFF!!!”提示信息,但是打印不出来
  11. 【系统分析师之路】原创章节 非功能需求设计思维导图
  12. 「Computer Vision」Note on Kinetics and Two-Stream Inflated 3D ConvNets (I3D)
  13. Node.js 单元测试:我要写测试 - Mocha - Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率
  14. P1295 [TJOI2011]书架(线段树dp)
  15. android 高德地图 lbstraceclient,安卓高德地图定位篇-(1)
  16. idea String报错问题
  17. 前端-html-01
  18. 转载--苹果是怎么吃到的?——职业规划,从了解自己开始
  19. 金融风控各场景模型策略如何做?系统总结分享,数据风控精选专题集
  20. mysql安全实验测验答案_实验三_数据库安全性实验报告.doc

热门文章

  1. 总结2023Android开发面试题(含答案)
  2. Hi3516开发笔记(二):Hi3516虚拟机基础环境搭建之串口调试、网络连接以及sftp文件传输
  3. 免费的PDF在线合并工具,拿走不谢!
  4. Python安装.whl文件流程及问题解决
  5. RISC-V SiFive U64内核——HPM硬件性能监视器
  6. 什么是 reactor 模式
  7. TypeError [ERR_INVALID_ARG_TYPE]: The “path“ argument must be of type string(已解决)
  8. Vue3加载中(Spin)
  9. scala利用akka框架封装数据库操作api微服项目
  10. 树莓派学前班——设置屏幕分辩率