全国计算机二级C语言知识考点.docx
全国计算机二级C语言知识考点全国计算机二级C语言指针知识考点【考点1】指针变量指针变量是用来存储地址的,而一般变量是存储数值的。指针变量可指向任意一种数据类型,但不管它指向的数 据占用多少字节,一个指针变量占用四个字节。【考点2】指针变量的定义格式为:类型名*指针变量名。二维指针int *p;可以 理解为基类型为(int *)类型。【考点3】指针变量的初始化指针变量在使用前必须要初始化,把一个具体的地址赋 给它,否那么引用时会有副作用,如果不指向任何数据就赋“空值"NULLo指针变量两种初始化方法一:int a=2, *p=&a;(定义的同时初始化)方法二:int a=2, *p;(定义之后初始化) p=&a;【考点4】指针变量的引用&是取地址符,*是间接访问运算符,它们是互逆的两个 运算符。在指针变量名前加间接访问运算符就等价它所指向 的量。【考点5】指针的运算int *p中*p和p的差异:* p可以当做变量来用;*的作用是取后面地址p里面的数 值P是当作地址来使用。* p+和(*2+的之间的差异:改错题目中很重要p+是地址会变化。(*P)+是数值会要变化。三名主义:(考试的重点)数组名:表示第一个元素的地址。数组名不可以自加, 他是地址常量名。(考了很屡次)函数名:表示该函数的入口地址。字符串常量名:表示第一个字符的地址。考试重要的话语:指针变量是存放地址的。并且指向哪个就等价哪个,所 有出现*P的地方都可以用它等价的代替指向的变量。例如:int a=2, *p=&a;p=*p+2;(由于*p指向变量a,所以指向哪个就等价哪个,这里*p 等价于a,可以相当于是a=a+2)全国计算机二级C语言数组知识点复习【考点1】数组的定义数组是一组具有相同类型的数据的集合,这些数据称为 数组元素。格式为:类型名 数组名常量表达式。数组的. 所占字节数为元素个数与基类型所占字节数的乘积。【考点2】数组的初始化第一维长度可以不写,其它维必须写。int a = l,2;合法,int 口 3=2,3,4;合法,int 2口 = 2,3,4;非法。数组初始化元素值默认为0,没有初始化元素值为随机。 如在 int a5 = 0,1,2;中,元素 a4值为 0;而在 int a5; 中,元素a4值为一个不确定的随机数。【考点3】元素的引用数组元素的下标从0开始,到数组长度减1结束。所以 int a5;中数组最后一个元素是a4。要把数组元素看作一 个整体,可以把a4当作一个整型变量。【考点4】二维数组数组023 = 1,2,3,4,5,6;中含6个元素,有2行3 列。第一行为a0行,第2行为al行,a0、列1叫行首 地址,是地址常量。*(a0+l)是第一行第一个元素往后跳一列,即元素值为2, *(a0+3)是第一行第一个元素 往后跳三个,即元素值为4。【考点5】行指针是一个指针变量,占四个字节,行指针指向一行连续数据,形式为:int(*p)2;, p只能存放含有两个整型元素的一维数组的首地址。注意(*p)两边的小括号不能省略,否那么 就成了指针数组,是假设干指针元素的集合。【考点6】数组名数组名是数组的首地址。数组名不能单独引用,不能通 过一个数组名代表全部元素。数组名是地址常量,不能对数 组名赋值,所以a+是错误的。但数组名可以作为地址与一个 整数相加得到一个新地址。【考点7】元素形式的转换助记:“脱衣服法那么"a2变成*(a+2), a23变成*(a+2) 3再可变成*(*(a+2)+3)。这个思想很重要!二维数组做题目的技巧:如果有如3 3=1,2,3,4,5,6,7,8,9这样的题目。步工殳一:把他们写成:第一列第二列第三列a0123-第一行al456一第二行a2789-第三行 步骤二:这样作题目间很简单:*(aO+l)我们就知道是第一行的第一个元素往后面跳一 列,那么这里就是元素,所以是1。*(al+2)我们就知道是第二行的第一个元素往后面跳二 列。那么这里就是al 2元素,所以是6O一定记住:只要是二维数组的题目,一定是写成如上的 格式,再去做题目,这样会比拟简单。两种重要的数组长度:char a= a 口 b' c' ;数组长度为3,字符串 长度不定。sizeof(a)为3。char a5 = 'a' ,' b' ,' c' 数组长度为 5,字符 串长度 3。sizeof(a)为 5。