21年3月15日C语言概述(一)

内容:

1.C语言的编译过程

2.进制转换的贪心算法

3.类型

4.变量

5.课堂小问题

1.C语言的编译过程

  源文件.c  >>预编译>>  预编译文件.i   >>编译>>   目标文件.obj   >>链接>>   可执行文件.exe

2.进制转换的贪心算法

  130转换2进制

  最大化满足128,则在2的位置上填1,然后看减去之后的数,也就是3,最大化满足多少。

  3满足2,该位置填1并减去该值,剩下的数为1。  1在满足2

  总结:贪心算法  加  大于等于该位次

3.类型

  3.1整型           char  short  int  long  long long 

  3.2浮点型       float  double  long  double 

  3.3布尔型  bool

  3.4无类型  void

   关于bool类型的问题

             

   总结:bool只有对错值,没有具体数值:

      规则:真为非零(如:1,52,-5,-2等),表现为1 ,      假的数值为0,表现为0,

      (左图)bool值进行减法,按规则办事,不管计算的结果如何,表现出来的只有 真(1)/假(0)。   (右图)加法,具体数值只是一个过程,结果的体现只有   真 / 假。

                         

      

      上述规则的体现


4.变量

  凡是函数之外,全局变量

  凡是函数之内,局部变量      >>      块内变量

  4.1

  宏常量  与  常变量

  #define MAX = 10

  4.1.1 宏  >>  宏替换(发生在预编译),就是把代码中的MAX换成10 (这里没有;  若加了分号,在替换的时候会带上分号      MAX>>10;  )   

      >>  宏没有类型之说,因为只是替换

      >>  宏并不开辟空间

      

  const int max = 10 ;

  4.1.2常变量

      >>常变量有类型,并且开辟空间  

5.课堂小问题

  5.1 作用域的概念

    作用域是C++程序中的一段区域,一般用正反两个花括号来界定它的范围。

    在同一个作用域范围内,一个命名只能唯一关联到一个实体,这个实体可以是变量,函数,类型,模版等。也就是说,在同一作用域范围内,不同的实体必须对应不同的命名,绝对不允许出现两个不同的实体对应同一个相同的命名的情况。

    一个命名可以和不同作用域中的不同实体相对应。也就是说,对于同一个命名,在不同的作用域中可以重复使用。

  

  5.2宏常量与字面常量的区别 

    宏常量在预编译就替换了,然后编译、链接。

    字面常量是变成了代码的一部分,以立即数的形式。(立即数是指在立即寻址方式中给出的数)

  5.3局部有个变量a,全局也有个变量a,如何在局部应用全局的

    ::a 就表示全局的

优先级的小案例

 c *= a + b;      >>   c = (a+b) * c;

因为,逗号的优先级最低     *=的优先级第二低

所以基本上别的运算符优先级都在它们之上

    

Linux学习笔记
原文地址:https://www.cnblogs.com/zealwang/p/14545679.html