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语言复习(1)

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

c语言总复习!

总体上必须清楚的:­ 1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)­ 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循...
  • u013822703
  • u013822703
  • 2014年03月06日 16:18
  • 244

C语言指针复习

我们知道,指针是C语言中的
  • lkf009
  • lkf009
  • 2014年07月15日 23:58
  • 244

c语言复习 —— 数组

数组的产生:数据是一种存放数据的容器。所以:一个数组中里面的元素是同一种类型的。 一维数组: 1、定义: 类型 名称 [元素数量] 注意:元素数量必须是整数,c语言中没有对象这个概念,所...
  • u012496940
  • u012496940
  • 2015年08月09日 21:44
  • 490

C语言知识点完美总结

C语言最重要的知识点 总体上必须清楚的: 1)程序结构是三种: 顺序结构 、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰...
  • the_Sixth_String
  • the_Sixth_String
  • 2016年10月08日 14:26
  • 2155

C语言精髓知识点总结

1、野指针:就是指针指向的位置是不可知的,指向的位置可能不能访问,触发段错误 2、怎么避免野指针:在指针解引用之前,要确保指针指向一个绝对可用的空间 常规做法:第一点:在定义指针时同时初始化为NU...
  • wpx201314
  • wpx201314
  • 2016年03月02日 14:01
  • 466

C语言考研复习小笔记

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

C语言复习笔记 13

数组和指针绝不等价,数组是另外一种类型数组和指针不等价的一个典型案例就是求数组的长度,这个时候只能使用数组名,不能使用数组指针#include int main(){ int a[6] = {...
  • wangjun_huster
  • wangjun_huster
  • 2017年04月12日 21:23
  • 180

C语言复习之结构体基础知识

一.基础知识 1.聚合数据类型(aggregate data type)能够同时存储超过一个的单独数据。C提供了两种类型的聚合数据类型,数组和结构。 (1)数组是相同类型的元素的集合,它的每个元素...
  • u010417553
  • u010417553
  • 2013年05月25日 21:34
  • 604

C语言复习(三)文件操作

文件操作 ———————————————————————————————————— 操作系统时以文件为单位对数据进行管理的。 1、文件的打开与关闭 (1)首先需要一个文件型指针变量 FILE...
  • m2606707610
  • m2606707610
  • 2018年01月13日 21:40
  • 14
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c语言复习要点摘要
举报原因:
原因补充:

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