C++学习日记(一)——记录学习过程中的小知识

  • 类型转换:当赋给无符号类型一个超出它表示范围的值的时候,结果是初始值对无符号类型表示数值总数取模后的余数。如
unsigned char c = -1;

结果c=255.  当赋给带符号类型一个超出它表示范围的值时,结果是未定义的。

取模运算过程如下:

设数c,a,b;求a对b取模后的运算结果:
c=a/b向负无穷方向舍弃小数后的整数商,可以理解为向下取整。
如a=-,b=256,则c=-256,取整得c=-,
取模运算结果r=a-c×b。此处r=255

 

  • 函数的作用域:
  1. 函数原型作用域:函数原型声明(一般在所有程序前的那个声明)的时候形参的作用域仅限于那一个()括号,如:
  void  Example(int e1,double e2);

    e1和e2的作用域就是这个括号,不能用于其他任何地方。

   2.局部作用域:函数的形参,函数中定义的变量,{}内定义的变量具有局部作用域。举例:

void function(int a)
{
        int b;
        cin>>b;
        if(b)
           { 
                 int c;    
            }
         .......
}

其中a、b的作用域为这个function,c的作用域为if的{ }内。

 

          3.类作用域:类体内和成员函数的函数体。

   4.文件作用域:不属于以上作用域的,起始于声明点,在整个C++文件内有效。

  • 可见性 

  如果在外层中声明了一个标识符,且内层中没有同名标识符的情况下,内层可以直接调用该标识符。如果内层也声明了同名的标识符,那么外层的就不可调用,称为不可见。

  • 生存期

    动态生存期:从声明点开始,到作用域结束。

      静态生存期:整个C++文件都存在,如拥有文件作用域的标识符或块内用static修饰的标识符。

 

 

 

 

posted @ 2020-04-18 09:45  你的泪光  阅读(210)  评论(0)    收藏  举报