c语言复习要点摘要

原创 2007年10月09日 10:19:00

国庆利用大假复习了下c语言 下面将主要的要点摘录下,并不包括所有内容,只包括自身不太熟悉的那部分
1、“定义”指建立或分配单元的位置,而“说明”则说明变量的性质,但并不分配单元。比如用extend表示的单元 都只是说明。
2、int通常反映特定机器的自然大小,一般为16位或者32位,short对象一般为16位,long对象一般为32位
3、枚举是使常量值与名字相关联的又一种方便的方法,相对于#define语句的优势是常量值可以由自己控制
4、取模运算符%不能作用于float或double对象,在有负的运算分量时,整数除法截取的方向以及取模运算结果的符号取决于具体的机器,在出现上溢或下溢时所采取的动作也取决于具体的机器
5、&&与||链接的表达式从左到右计算,但是一旦知道结果真假就立即停止计算 比如dosth&&print true|| print false 相当与一个if else语句
6、按照定义,如果关系表达式与逻辑表达式的计算结果为真,那么它们的值为1,如果为假,那么它们的值为0
7、为了保证程序的可移植性,如果要在char变量中存储非字符数据,那么最好指定signed 或unsigned限定符
8、加加与减减运算符只能作用与变量,作用于表达式是非法的
9、c语言有6个用于位操作的运算符,这些运算符只能作用于整数分量
   按位与运算符通常用来屏蔽某些位
   按位或运算符通常用来打开某些位
   按位异或运算符对应的位相同为0 不同为1
   移位运算符>> <<移位方向指向箭头尖所对的方向,当右移是运算分量一定为正。在右移时,对左边空出的部分用符号位填空或者用0填空,取决于具体的机器。
   一元运算符~用于整数的反码
10、每个else与最近的还无else匹配的if匹配(无花括号分割的情况)
11、如果在函数定义中省略返回类型,则缺省为int
12、作用域规则:
    怎样编写说明才能使所说明的变量,在使用时被认为是正确的
    怎样安排说明才能保证在函数载入时,各部分能正确的相连
    怎样组织说明,才能使得只需一份拷贝
    怎样初始化外部变量
13、另外一个方面,如果一个外部变量在定义之前就要被使用到,或者这个外部变量定义在所要使用的原文件不相同的源文件中,那么要在相应的变量说明中强制性使用关键词extern
在一个源程序的所有源文件中对一个外部变量只能在某个文件中定义一次,而其他文件可以通过extern说明来访问
在外部变量定义中,必须指定数组的大小,但是在extern说明中则不一定要指明数组的大小。
14static的用法
  通常,说明之前前缀以关键词static来指定静态存储,以免被其他外部源码使用
  说明函数,则该函数名词就不能用在除函数说明所在文件之外的其他文件中
  static说明也可以用于说明函数内部变量,内部静态变量是一种在能在某一特定函数中使用的但一直占据存储空间的变量,且只会被初始化一次。可以用于某些计数的特殊用途。
15、c预处理程序
    #include "文件名"或 #include <文件名>的行都被替换成由文件名所指定的文件的内容,如果文件名用引号括起来,那么就在源程序所在的位置查找该文件。
    #define 名字 替换文本 替换文本可以是任何字符串,正常情况下,替换文本是#define 指令所在行的剩余部分,但也可以把一个比较长的宏定义 分成若干行,这时需要在尚待延续的行后加上反斜杠/即可。替换只对单词镜像,对括号中的字符串不起作用
    #undef 指令用于取消对宏名字的定义,这样做通常为了保证一个调用所调用的是一个实际函数而不是一个宏
    形式参数不能用带引号的字符串替换,然而,如果在替换文本中,参数名的#作为前缀,那么它们将被由实际变元替换的参数扩展成带引号的字符串
    预处理运算符##被宏扩展提供了一种链接实际变元的手段,如果替换文本中的参数用##相连,那么参数就被实际变元替换,##与前后的空白符被删除,并对替换后的结果重新扫描
    #if语句中包括一个常量整数表达式(其中不能包含sizeof类型强制转换运算符或者枚举常量:不是c语言的一部分 无法识别这些东西)若该表达式的求值不等于0,则执行其后各行,直到遇到#endif #elif或者#else语句为止
    #ifdef与#ifndef用于判断是否定义了相关的宏
16、必须注意到,数组名字和指针之间仍然存在一点区别,指针是变量,但数组名不是变量
    一般而言,可以像对其他变量一样对指针进行初始化,尽管在一般情况下,指针有意义值只能是0或者表示已定义的某一类型的数据的地址表达式。
    指针与整数不能相互转换,但0例外。指针可以和整数进行相加或者相减运算
    有效的指针运算包括:相同类型指针间的赋值运算,指针值加成一个整数值的运算。指向相同数组中元素的指针之间的加减或者比较运算。将指针赋值为0或指针与0之间的比较运算
17、 *p++ = val; val = *--p 标准的进出栈的操作。
18、命令行变元的第一个字符串为函数名(程序名)
19、千万不要以为一个结构的大小等于它各成员大小的和,因为不同对象有不同的对齐需求,所以结构中也有可能出现无名字的“洞”
    一个结构可以包含自身结构的指针,但不能包含其实例(嵌套性)
20、在任何意义上 typedef都没有创建一个新的类型,它只是为某个已存在的类型增加了一个新的名称。由于可以被编译程序解释,因此与#define还是有区别的。
21、联合。读取的类型必须是最近一次存入的类型,跟踪当前存入联合中的类型是程序员的责任,如果存入类型与提取类型不同,则结果取决于实现
   一个联合只能用它的第一个成员类型值进行初始化
22、位字段。有关位字段的几乎所有属性都取决于实现,一个字段是否能覆盖字段边界由实现定义,字段可以无名字,无名字段(只有一个冒号和宽度)被用于填充。特殊宽度0用于强制在下一个字边界上对齐,字段只能被说明成整型,为了移植方便需显示说明该整型是signed还是unsigned,且不能应用&运算符

 

C语言学习摘要

程序结构 C语言程序以源文件为单位存放,一个源文件被称为一个“编译单元”(translation unit),且该源文件附加有所有的头文件以及由预处理指令#include嵌入的源代码,另外除去由条件...
  • u012333307
  • u012333307
  • 2017年02月08日 15:28
  • 258

C语言复习要点

  • liqihacker
  • liqihacker
  • 2010年04月21日 15:06
  • 628

对复习大纲及C语言几个重要知识点的理解

 对复习大纲及C语言几个重要知识点的理解作者:    汤伟E-mail: tw0814@sina.comQQ:      17834798,各个群中,我都加入了。声明:    1、本文档仅供菜鸟参考,...
  • ufool
  • ufool
  • 2006年12月07日 06:02
  • 2491

C语言考研复习小笔记

数据类型: 八进制数:一般以0开头; 十六进制数:以0x开头; 字符数据:单字符以char 定义,每个字母对应有ASCII码,小写字母比大写字母大32,A的ASCII码为65,字...
  • kellen_f
  • kellen_f
  • 2017年07月15日 16:02
  • 513

【C语言复习(十二)】数组基础

1、数组的概念 数组是相同类型的变量的有序集合;如int num[5]; 00 2、数组地址与数组名 数组名代表数组首元素的地址; 数组的起始地址需要使用取地址符&才能得到; 数组首元素的...
  • CMbug
  • CMbug
  • 2014年06月15日 17:50
  • 598

链表的知识点整理

从表中任意一个节点出发可以依次访问到表中其他所有节点的结构是() 答案:循环链表若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间 答案:顺序存储选...
  • weixin_38070406
  • weixin_38070406
  • 2017年08月02日 20:56
  • 369

Python基础知识复习整理(1)

之前对python有一定的了解,最近不是很忙又重新看了一下基础知识,将重要的知识点整理了一下做了笔记。...
  • wutong9509
  • wutong9509
  • 2017年04月12日 17:29
  • 504

C语言复习(1)

C语言从键盘输入数据 程序是人机交互的媒介,有输出必然也有输入。在C语言中,有多个函数可以从键盘获得用户输入: scanf():和 printf() 类似,scanf() 可以输入多种类型...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年06月24日 17:01
  • 481

C语言基础知识梳理总结

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭!...
  • g984160547
  • g984160547
  • 2017年03月06日 09:54
  • 8079

《数据结构与算法C#语言描述》笔记9_构建字典:DictionaryBase类和SortedList类

九.构建字典:DictionaryBase类和SortedList类 字典是一种把数据作为键/值对来存储的数据结构。可以通过自定义一个继承自System.Collections.Dictionary...
  • Maths_bai
  • Maths_bai
  • 2012年10月07日 23:49
  • 1329
收藏助手
不良信息举报
您举报文章:c语言复习要点摘要
举报原因:
原因补充:

(最多只允许输入30个字)