c语言基础 一

来源:互联网 发布:linux root 密码修改 编辑:程序博客网 时间:2024/05/22 10:48


2.1编译过程几个阶段:
      【预处理器】:在源代码上执行一些文本操作,例如:用实际值代替由#define指令定义的符号以及由#include指令包含的文件内容,滤掉注释。
      【解析】:判断代码语句的意思,产生绝大多数的错误和警告信息的地方。
        产生目标代码:目标代码是机器指令的初步形式,用于实现程序的语句。
2.2【执行】:在大多数机器里,程序使用一个运行时【堆栈】,他用于存储函数的局部变量和返回地址。程序同时可以使用【静态内存】,存储于静态 内       存中的变量在程                             序的整个执行过程中将一直保留他们的值。
2.3 注释是不允许嵌套
3.4 int *pi  //pi是普通的指针变量
      int const *pi  //pi则是指向整型常量的指针,可以修改指针的值,但不可以修改他所指向的值。
     int * const pi  //pi则是指向整型的常量指针,可以修改他所指向的值,但不可以修改指针的值。
     int const * const pi  //无论是指针本身还是他所指向的值都常量,不允许修改。
3.5作用域
    1. 编译器可以确认4种不同类型的作用域:【文件作用域】,【函数作用域】,【代码块作用域】,【原型作用域】。
    2.【代码块】:位于一对花括号之间的所有语句。
    3.任何在代码块开始位置声明的标识符都具有【代码块作用域】。
    4.任何在所有代码块之外声明的标识符都具有【文件作用域】。
    5.只适用于在函数原型中声明的参数名具有【原型作用域】。
    6.函数作用域只适用于语句标签,语句标签用于goto语句。一个函数中的语句标签必须唯一。
3.6链接属性有3种:【external(外部)】,【internal(内部)】,【none(无)】
     1.none:总是被当做单独的个体,也就说该标识符的多个声明被当做独立不同的实体。
     2.internal:该类标识符在同一源文件内的所有声明中都指同一个实体,单位于不同源文件的多个声明则分属于不同的实体。
     3.external:该类标识符不论声明多少次,位于几个源文件都表示同一个实体。
3.7【存储类型】:指存储变量值的内存类型。
      1.普通内存,运行时堆栈,硬件寄存器这三个地方可以存储变量。
      2.凡是在任何代码块之外声明的变量总是存储于【静态内存】也称数据段中,也就是不属于堆栈内存,这类变量称为【静态变量】,静态变量在程序         运行之前创 建,在          程序的整个执行期间始终存在。它始终保持原先的值,除非给它赋一个不同的值或程序结束。
      3.作用域,链接属性和存储类型总结
         变量类型                          声明的位置                      是否存于堆栈                               作用域                            如果声明为static
         全局                                  所有代码块之外              否                                                    从声明处到文件尾       不允许从其他源文件访问
         局部                                  代码块起始处                  是                                                    整个代码块                   变量不存储与堆栈中,它的值在程序整个执行期一直保持
         形式参数                          函数头部                          是                                                    整个函数                       不允许
  
4.1 break和continue语句
      break和continue用于循环语句中。
      break:用于永远终止循环。在执行完break之后,执行流将执行循环正常结束时将要执行的语句。
      continue:用于永远终止当前执行的那次循环,在执行完continue之后,执行流将执行下一条下一次循环。
      注意:这两条语句如果出现在嵌套的循环内部,它们只对最内层的循环起作用,无法影响到外层循环。要想跳出外层循环有两种方法,
                  一:可以使用goto语句,但是使用goto语句比较危险,我们应该避免使用goto语句。
                  二:把所有的循环放在一个单独的函数中,可以使用return语句离开这个函数。
4.2 当需要出现一条语句但并不需要执行任何任务时,可以使用空语句。


      
原创粉丝点击