- 类型转换:当赋给无符号类型一个超出它表示范围的值的时候,结果是初始值对无符号类型表示数值总数取模后的余数。如
unsigned char c = -1;
结果c=255. 当赋给带符号类型一个超出它表示范围的值时,结果是未定义的。
取模运算过程如下:
设数c,a,b;求a对b取模后的运算结果: c=a/b向负无穷方向舍弃小数后的整数商,可以理解为向下取整。 如a=-1,b=256,则c=-1/256,取整得c=-1, 取模运算结果r=a-c×b。此处r=255.
- 函数的作用域:
- 函数原型作用域:函数原型声明(一般在所有程序前的那个声明)的时候形参的作用域仅限于那一个()括号,如:
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修饰的标识符。
原文链接: https://www.cnblogs.com/maxu1999/p/12723949.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/342866
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!