C语言基础知识总结(下)--期末复习

第四章:数组

一维数组的重要概念

  • 对a[10]这个数组的讨论。
    a)a表示数组名,是第一个元素的地址,也就是元素a[10]的地址。
    b)a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。
    c)a是一维数组名,所以它是列指针,也就是说a+1是跳一列。
  • 对a[3][3]的讨论。
    a)a表示数组名,是第一个元素的地址,也就是元素a[3][3]的地址。
    b)a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。
    c)a是二维数组名,所以它是行指针,也就是说a+1是跳一行。
    d)a[0]、a[1]、a[2]也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a[0]+1,a[1]+1,a[2]+1都是跳一列。
    e)注意a和a[0] 、a[1]、a[2]是不同的,它们的基类型是不同的。前者是一行元素,后三者是一列元素。

三种循环结构

  • for() ; while(); do- while()三种。
    for循环当中必须是两个分号,千万不要忘记。
    写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。
    do-while()循环的最后一个while();的分号一定不能够丢。(当心上机改错)。

break 和 continue的差别

  • 记忆方法:
    break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。
    continue:是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。

嵌套循环
就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。
while((c=getchar())!=’\n’) 和 while(c=getchar() !=’\n’)的差别
先看a = 3 != 2 和(a=3)!=2 的区别:(!=号的级别高于=号 所以第一个先计算 3!=2)第一个a的数值是得到的1;第二个a的数值是3。
考试注意点: 括号在这里的重要性。
本章重点

  • 一维数组、二维数组的定义、初始化和输人输出方法。
  • 字符数组和字符串数组的使用。
  • 冒泡排序算法和折半查找法。
  • break 和continue辅助控制。
  • 字符串的处理函数。

本章难点

  • while do–while循环结构的比较。
  • 分支和循环的嵌套。
  • 字符串的处理函数。

本章要求

  • 掌握利用循环来实现数组元素的输人、输出、移动、排序、增加、删除、查等操作的方法。
  • 掌握冒泡排序算法的实现过程。
  • 掌握折半查找法。
  • 熟练利用字符串处理函数完成字符串的连接、复制、比较求字符串长度等功能。

第五章:函数

函数:是具有一定功能的一个程序块。
函数的参数,返回数值(示意图)

  • main()
    {
    int a = 5,b=6,c;
    c = add(a,b);
    printf(“%d”,c);
    }
    调用函数
    a,b是实参
    整个函数得到一个数值就是
    Add函数的返回数值。
    int add ( int x, int y)
    {
    int z;
    z=x+y;
    return z;
    }
    被调用函数
    x,y是形式参数
    函数返回数值是整型
    z就是这个add函数计算后得到的结果,就是函数返回给主程序的返回数值。
    程序是在从上往下顺序执行,当碰到了函数add后,把a,b的数值穿给调用函数,程序暂时中断等待返回数值。当得到了返回数值后,再顺序的往下执行。

一定要注意参数之间的传递

  • 实参和形参之间 传数值,和传地址的差别。(考试的重点)
    传数值的话,形参的变化不会改变实参的变化。
    传地址的话,形参的变化就会有可能改变实参的变化。

函数声明的考查

  • 一定要有:函数名,函数的返回类型,函数的参数类型。
    不一定要有:形参的名称。

本章重点

  • 函数的定义及调用。
  • 函数的参数传递。
  • 变量的作用域和生存期。
  • 带参数的宏定义。

本章难点

  • 函数的嵌套调用。
  • 函数的递归调用。

本章要求

  • 掌握函数的定义格式及调用方法。
  • 理解参数传递方式。
  • 理解递归算法及其运用。
  • 理解变量的作用域和生存期。
  • 掌握带参数的宏定义进行宏替换的规则。

第六章:指针

指针变量的本质是用来放地址,而一般的变量是放数值的。

  • int *p 中 *p和p的差别
    *p可以当做变量来用;*的作用是取后面地址p里面的数值;p是当作地址来使用。
    ***p++ 和 (*p)++的之间的差别(改错题目中很重要)
    *p++是 地址会变化;(*p)++ 是数值会要变化。

三名主义(考试的重点)

  • 数组名:表示第一个元素的地址。数组名不可以自加,他是地址常量名。(考了很多次)
    函数名:表示该函数的入口地址。
    字符串常量名:表示第一个字符的地址。

本章重点

  • 指针变量的定义、初始化及使用。
  • 指向数组的指针。
  • 指向字符串的指针。

本章难点

  • 指向数组的指针。
  • 指向字符串的指针。

本章要求

  • 理解指针的概念及使用。
  • 掌握利用指针访问变量和数组元素的方法。
  • 理解指针作为函数参数,传递的是地址。

这是我期末的复习资料,感觉整理的还不错,拿出来和大家分享。
相关文章
C语言基础知识总结(上)–期末复习
C语言复习Word文档
链接:https://pan.baidu.com/s/1uX6W8gQriyZ93CKnT-xMDw
提取码:tj9w

猜你喜欢

转载自blog.csdn.net/weixin_43319452/article/details/105931708