【学习ios之路:C语言】总结整理:学好Object-C---C语言必备知识点

一.基本数据类型.常量.变量.运算符

    1.数据类型 int. short.char.long.float.double.

    2.常量的分类.(1).整型常量 (2)浮点型常量 (3)字符常量 (4)字符串常量.

    3.常量的特性:常量存储在常量区,常量区的内容不可被更改.

    4.变量的定义与本质.数据类型 变量名 = 初值 . 本质变量就是一个容器.

    5.变量名的命名规范

      6.运算符.

       (1)赋值运算符 = 

         (2)算数运算符 +  -  *  /  %  ++  --

       (3)复合运算符  +=  -+   *=   /=   %=

       (4)关系运算符  >  <  >=  <=  !=   ==

       (5)逻辑运算符  &&  ||  !    注 :逻辑与与逻辑或的短路现象

       (6)条件运算符  a > b ? a : b; 

       (7)位运算符 &  |   ^   ~   <<   >>

    7.表达式(有无返回值) ,最简单表达式:常量.

    8.基本的输入输出函数  %d  %o  %0x(%x)  %ld  %lu  %c  %f  %s  %p 

二.分支结构

     1.BOOL

     2.if语句. (1) if  (2) if ... else  (3) if ... else if ..... else

     3.switch...case 

            (1)case  + 整型常量表达式 

            (2) 如果要在case分支中定义变量要加大括号{}

            (3)default

            (4)break : 跳出分支

 三.循环结构

    1.循环必备四个条件:

              (1)循环变量初始化

              (2)循环条件

              (3)循环增量

              (4)循环体  

      执行流程: (1) --- (2) --- (4) --- (3) --- (2) --- (4) --- (3) --------- (2)

      2.for循环 ---- 循环嵌套

      3.while循环 与 do......while循环

      4.for 与 while, do...while的区别

               (1) for循环 :多用于知道循环次数,既循环次数确定的情况下.
               (2)while循环:do..while 循环: 多用于不确定循环次数的需求.
               (3)for循环可以转化为while和dowhile循环,但是不能反过来.

      5.while和do ..while区别:
              (1)while:先判断循环条件,在执行循环体.
              (2)do..while :先执行一次循环体,然后在判断,即使循环条件不满足,循环体也会执行一次.    
      6.break与continue的区别

      7.如何取出一个数各个位上的数. % 与 / 的应用

 四.数组

     1.数组的作用

     2.数组的定义.数组的强大是和循环分不开的.

     3.如何取数组元素? 下标

     4.遍历

     5.冒泡排序 升序降序排序
         (1)外层循环控制趟数,外层减一, 可减可不减,-1目的是提供程序的执行效率.
         (2)内层循环控制比较次数. 内层减一,必须减,防止比较时越界.
         (3)内层 - i ,可以不减, -i目的是缩小无序区的范围,提高程序的执行效率.

     6.字符数组 - 字符串

     7.字符串处理函数

五.数组高级

     1.二维数组的本质 --- 数组里面套数组

     2.多维数组简单应用

六.结构体(VIP)

    1.结构体存在的意义.

            (1)自定义的数据类型,可以用来定义变量

            (2)结构体和数组一样,都是大容器,可以存储多个变量,但是结构体比数组灵活,可以存储不同类型的数据

     2.结构体的定义.

     3.如何通过结构体变量访问结构体成员.

     4.typedef 类型重定义

     5.结构体的嵌套

     6.比较局部获取整体的思想.

     7.结构体按照成员进行排序

七.函数

      1.函数的作用:

        实现代码的模块化管理.把复杂的逻辑进行拆分,而主函数只起到宏观调控的作用即可.

      2.函数的定义. 返回值类型 函数名(形参列表){函数体(即函数的实现内容)}; 四种形式.

      3.函数的分文件形式.(.h文件存放函数的生命, .m文件存放函数的实现.)

      4.(1)返回值类型 (2)形参(3)实参(4)函数声明,函数实现,函数体,函数名

         (1)实参:函数调用时给定的参数叫做实参,是一个唯一确定的数据.
         (2)形参:形式上的参数,在函数定义时,给定的参数叫做形参,一个一个的变量,存储的数据在函数调用之前未知.
         (3)实参向行参传递的过程是一个拷贝的过程.

      5. return关键字的作用.

         (1) 将函数的返回值给主掉函数.

         (2) 结束当前函数的执行.

      6.函数调用: 函数名 + 实参列表

     7.函数的嵌套调用

         函数与函数之间可以嵌套调用(也就是在一个函数内部可以调用另外一个函数).但不能嵌套定义(不能在一个函数内部定义另外一个函数).

      8.递归简单应用.

      9.static 作用.

八.进制转换(理解)

       1.进制转换

       2.位运算符

       3.栈区的内存分配原则(VIP).

       4.如何看程序的执行,学会打断点.

九.指针

      1.指针的作用.

      2.指针的定义.

      3.指针的赋值.

      4.指针重指向.

十.指针高级

      1.传值和传址

         (1).传值.传递的时变量中的内容.函数内部改变不会影响外部的变量.
         (2).传地址.传递的是变量的地址,函数内部改变会影响外部的变量.

       2.指针与结构体的关系.

       3.如何通过结构体指针访问结构体成员.    

       4.const的作用.

          const 安全性 修饰的变量是readonly,只能读取数据,不能修改.

    
   
<span style="font-size:14px;">    /**
     * p 是指针变量,存储p地址
     * *p 是指向变量指向的空间,也就是变量a的空间
     *  面试题:请问const修饰的谁不可变?
     * 1.const int *p = &a;//修饰*p,即*p不可变,不能通过指针变量p修改指向空间的内容,但是指针变量p可以重新赋值,重指向.
     *  测试1: *p = 10; p = &b;
     * 2.int const *p = &a;//修饰*p,即*p不可变,不能通过指针变量p修改指向空间的内容,但是指针变量p可以重新赋值,重指向.
     *  测试2: *p = 10; p = &b;
     * 3.int * const p = &a;//修饰p,即p不可变,能通过指针变量p修改指向空间的内容,但是指针变量p不可以重新赋值,不能重指向.
     *  测试3: *p = 30; p =&a;
     * 4.const int * const p = &a;//修饰*p以及p ,都不可以改变,不能通过指针变量p修改指向空间的内容,指针变量p也不可以重新赋值,不能重指向.
     *  测试4: *p = 10; p =&a;
     *
     */</span>




十一.动态内存分配

         1.存储区的划分.堆区

         2.在堆区开辟空间, malloc ,calloc ,realloc, 回收空间.

         3.标记删除.

         4.宏. 无参宏 和 有参宏 宏的注意事项(vip)

 十二.函数指针(vvip)

         1.函数指针的定义

           
    <span style="font-size:14px;"> /**
     *   函数指针:指向一个函数的指针变量.'
     *   函数的类型:返回值类型+参数
     *   函数指针变量类型: int (*)(int x, int y)
     *   指针变量的名字:max
     *   初始值:NULL
     *   max 可以指向一个返回值是int型并且有两个int型的参数的函数.
     */</span>


           

               2.如何通过函数指针调用函数

           3.回调函数

           4.枚举 enum

           5.条件编译.#include 与 #import的区别

           #import 相比 #include 能够防止重复导入,引起交叉编译.



  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。