C/C++ 中的一元运算符


在这里,我们将了解 C/C++ 中的一元运算符。一元运算符是指作用于单个操作数以产生新值的运算符。一元运算符如下所示。

运算符描述
间接运算符 (*)
它作用于指针变量,并返回与指针地址处的值等效的左值。这称为指针的“解引用”。
取地址运算符 (&)
一元取地址运算符 (&) 获取其操作数的地址。取地址运算符的操作数可以是函数指示符,也可以是指定非位字段且未声明为寄存器存储类说明符的对象的左值。
一元加运算符 (+)
一元加运算符 (+) 的结果是其操作数的值。一元加运算符的操作数必须是算术类型。
一元负运算符 (-)
-(一元减)运算符对操作数的值取反。操作数可以是任何算术类型。结果不是左值。
逻辑非运算符 (!)
逻辑非运算符 (!) 反转其操作数的含义。操作数必须是算术类型或指针类型(或计算结果为算术类型或指针类型的表达式)。操作数隐式转换为 bool 类型。
按位非运算符 (~)
按位非运算符,有时称为“按位补码”或“按位非”运算符,产生其操作数的按位补码。操作数必须是整型。
前缀递增运算符 (++)
前缀递增运算符 (++ ) 为其操作数加 1;此递增值是表达式的结果。操作数必须是类型不为 const 的左值。结果是与操作数类型相同的左值。
前缀递减运算符 (--)
前缀递减运算符 (--) 从其操作数中减去 1;此递减值是表达式的结果。操作数必须是类型不为 const 的左值。结果是与操作数类型相同的左值。
强制转换运算符 ()
类型强制转换提供了一种在特定情况下显式转换对象类型的方法。在进行类型强制转换后,编译器将强制转换表达式视为 type type-name。
sizeof 运算符
它是一个编译时一元运算符,可用于计算其操作数的大小。
new 运算符
它是一个内存分配运算符,用于动态分配内存。
delete 运算符
它是一个内存分配运算符,用于释放动态分配的内存。

这些运算符具有从右到左的结合性。一元表达式通常包含在后缀或主表达式之前的语法。

让我们来看一个 -(减号) 和强制转换 () 一元运算符的示例。

示例

 在线演示

#include<iostream>
using namespace std;
int main() {
   int x;
   float y = 1.23;
   x = (int) y;
   x = -x;
   cout << x;
   return 0;
}

输出

-1

更新于:2020年1月3日

2K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告