C和C++中的^运算符
⼀、C语⾔中
第⼀ :在C语⾔中,^属于特殊字符,表⽰脱字符号;在ANSI C中,引⼊了三元字符,为某些键盘上没有的字符提供输⼊⽅法。此时可以⽤三元符号“??/”表⽰脱位字符 ^ 。
第⼆ :^也可以表⽰特殊的⼆元运算符——逐位逻辑运算符(⽤于对数据的位进⾏操作),它表⽰的含义是逐位⾮或,要求两个整型操作数。从最⼩(即最右)的位开始,对操作数逐位操作;如果只有其中⼀个位为1,那么结果为1;否则为0。例如:x → 0000 0000 1011 1111
y → 0000 1111 0101 1111
x^y → 0000 1111 1110 0000 [1]
第三:^在51单⽚机C语⾔中有两种⽤法:
1. 表⽰⼀个直接地址的某⼀。⽐如:语句 “sbit led1=P1^0;”;语句的意思是:把P1⼝的第0位(最低位)即P1.0重新命名为led1,
以后要单独操作P1⼝的最低位时,便可直接操作led1。 [2]
2. 表⽰⼀个⽴即数的幂运算。⽐如:y=e^x,表⽰y等于e的x次⽅。(在数学应⽤中同样适⽤)
⼆、C++/CLI
通过将符号^放在类型名称的后⾯来指定该类型的句柄。例如,下⾯这条语句就声明了⼀个可以存储String类型对象的地址、名为proverb 的跟踪语句:
String^ proverb;
该语句定义的proverb变量是String^类型的跟踪句柄。当声明某个句柄时,系统⾃动将其初始化为空值,因此该句柄将不引⽤任何对象。可以⽤关键字nullptr显式地将其设置为空值:
proverb = nullptr;
注意此处不能像使⽤本地指针那样,使⽤0来表⽰空值。如果⽤0来初始化句柄,则数值0将被转换为该句柄引⽤的对象的类型,⽽这个新对象的地址将被存⼊该句柄中。
也可以显式地初始化句柄:
c++string类型String^ saying = L"I used to think I was indecisive but now I’m not so sure";
该语句在堆上创建⼀个包含等号右边字符串的String对象,该新建对象的地址被存⼊saying中。注意,字符串字⾯值的类型是const
wchar_t*,⽽⾮定义String类的⽅式使这样的字⾯值可以⽤来创建String类型的对象。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。