c++作用域运算符用法(全局变量和局部变量)
通常情况下,如果有两个同名变量,一个是全局变量,另一个是局部变量,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量。
#include<iostream>
using namespace std;
int num=10;
int main()
{ int num;
num=25;
cout<<"num is "<<num<<endl;
return 0;
}
程序的输出结果是num is 25。在main函数的输出语句中,使用的变量num是main函数内定义的局部变量,因此输出的结果为局部变量num的值。
作用域运算符可以用来解决局部变量与全局变量的重名问题
代码如下:
//如果我们希望在局部变量的作用域内使用同名的全局变量,那么可以在该变量的前面加上“::”,此时“::num”就代表全局变量,::就是作用域运算符。
#include<iostream>
using namespace std;
int avar; //全局变量定义
int main()
{ int avar; //局部变量定义
avar=25;
::avar=10;
cout<<"local avar = "<<avar<<endl;
cout<<"global avar = "<<::avar<<endl;
return 0;
}
local avar =25
global avar =10
这个例子可以看出,作用域运算符可以用来解决局部变量与全局变量的重名问题,即在局部变量的作用域内,可用::对被屏蔽的同名的全局变量进行访问。
相关推荐
-
C++编程中的或||、与&&、非!逻辑运算符基本用法整理
逻辑或运算符:|| 语法 logical-or-expression || logical-and-expression 备注 如果任一操作数或两个操作数为 true,则逻辑"或"运算符 (||) 返回布尔值 true:否则返回 false.操作数在计算之前隐式转换为类型 bool,结果的类型为 bool.逻辑"或"具有从左向右的关联性. 逻辑"或"运算符的操作数不需要是同一类型,但是它们必须是整型或指针类型.操作数通常为关系或相等表达式.
-
C++中的异或运算符^的使用方法
C++中^运算表示的是二进制的异或运算2^4=6010^100=110 使用该运算可以实现无中间变量两数字的兑换 下面的例子实现a和b的置换 a=2: b=4: a=a^b; b=a^b; a=a^b; 异或^是一个非常重要的运算符,大量问题可以利用异或的特点找到解决方案,尤其是在各大公司的面试题中.异或绝对是一个关键的运算符.
-
C++中不能被重载的运算符介绍
C/C++ 里大多数运算符都可以在 C++ 中被重载.C 的运算符中只有 . 和 ?:(以及 sizeof,技术上可以看作一个运算符)不可以被重载.C++ 增加了一些自己的运算符,除了 :: 和 .* 外,大多数都可以被重载.
-
解析C++中不能重载为友元函数的四个运算符
C++规定有四个运算符 =, ->, [], ()不可以是全局域中的重载(即不能重载为友员函数),这是为什么呢?现在先说说赋值运算符"="的重载C++规定赋值运算符"="只能重载为类的非静态成员函数,而不可以重载为类的友元函数.不能重载为类的静态成员应该比较容易理解,因为静态成员函数是属于整个类的,不是属于某个对象的,它只能去操作类静态数据成员.而赋值运算符"="是基于对象操作的.那么为什么赋值运算符不可以重载为类的友元函数?像同样都是双目
-
C++按位异或运算符的使用介绍
参与运算的两个值,如果两个相应位相同,则结果为0,否则为1.即:0^0=0, 1^0=1, 0^1=1, 1^1=0 例如:10100001^00010001=10110000 0^0=0,0^1=1 0异或任何数=任何数 1^0=1,1^1=0 1异或任何数-任何数取反 任何数异或自己=把自己置0 (1)按位异或可以用来使某些特定的位翻转,如对数10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算. 10100001^00000110=10100111 //1010
-
C++重载运算符的规则详解
(1)C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载.例如,有人觉得BASIC中用"* *"作为幂运算符很方便,也想在C++中将"* *"定义为幂运算符,用"3* *5"表示35,这是不行的. (2)C++允许重载的运算符C++中绝大部分运算符都是可以被重载的. 不能重载的运算符只有5个: . (成员访问运算符) .* (成员指针访问运算符) :: (域运
-
C++运算符重载的方法详细解析
运算符重载实质上是函数的重载 重载运算符的函数一般格式如下: 函数类型 operator 运算符名称 (形参表列) {对运算符的重载处理} 例如,想将"+"用于Complex(复数)的加法运算,函数的原型可以是这样的: 复制代码 代码如下: Complex operator + (Complex & c1,Complex &c2); 其中,operator是关键字,时候专门用于定义重载运算符的函数的,运算符名称就是C++提供给用户的预定运算符. 注意:函数
-
C++中的按位与&、按位与或|、按位异或^运算符详解
按位与运算符:& 语法 expression & expression 备注 表达式可以是其他"与"表达式,或(遵循下面所述的类型限制)相等表达式.关系表达式.加法表达式.乘法表达式.指向成员的指针表达式.强制转换表达式.一元表达式.后缀表达式或主表达式. 按位"与"运算符 (&) 会将第一操作数的每一位与第二操作数的相应位进行比较.如果两个位均为 1,则对应的结果位将设置为 1.否则,将对应的结果位设置为 0. 按位"与"
-
C++运算符重载 成员函数与友元函数详解
复制代码 代码如下: #include<iostream>using namespace std;class A{ int x,y; public: A(int xx,int yy):x(xx),y(yy){} A(){x=0;y=0;} A operator+(const A&b) //不加const限定,也可以 { return A(x+b.x,y+b.y); } A operator-() { return A(-x,-y); }
-
C++中求余运算符(%)示例详解
介绍: %是求余运算符,也叫模除运算符,用于求余数. %要求两个操作数均为整数(或可以隐式转换成整数的类型). 标准规定: 如果%左边的操作数为负数时,则模除的结果为负数或者0, 如果%左边的操作数为正数时,则模除的结构为正数或者0. 示例代码: #include<iostream> using namespace std; int main(){ char c = 253; int i =5 ; cout<<c%2<<endl; cout<<i%c<
随机推荐
- VbScript 封裝MS OWC(二)
- asp,asp.net学习教程下载
- 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的示例教程
- php除数取整示例
- php数值转换时间及时间转换数值用法示例
- 详解Android 扫描条形码(Zxing插件)
- JavaScript toUpperCase()方法使用详解
- JS实现从网页顶部掉下弹出层效果的方法
- 动网论坛的asp 数据库连接代码
- SQL Server 2016 无域群集配置 AlwaysON 可用性组图文教程
- SQL Server 2008 新特性 总结复习(一)
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句简单介绍
- jQuery使用$.ajax进行即时验证的方法
- 百度多文件异步上传控件webuploader基本用法解析
- 全面解析bootstrap格子布局
- Android异步下载图片并且缓存图片到本地DEMO详解
- javascript生成随机大小写字母的方法
- C# 邮件发送和接收实现代码
- PHP中spl_autoload_register函数的用法总结
- python urllib urlopen()对象方法/代理的补充说明