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

简介: 一元运算符: 是作用于单个操作数以产生新值的运算符。

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。


一元运算符: 是作用于单个操作数以产生新值的运算符。


一元运算符的类型:


  1. 一元减号(-)

  2. 递增(++)

  3. 递减(--)

  4. 否(!)

  5. 运算符地址(&)

  6. sizeof()

  7. 一元减号

  8. 减号运算符更改其参数的符号。正数变为负数,负数变为正数。

int a = 10;
 int b = -a; // b = -10
复制代码

  1. 一元减法与减法运算符不同,因为减法需要两个操作数。

  2. increment用于将变量的值加 1。 可以通过两种方式进行增量:

  1. prefix increment
    在此方法中,运算符在操作数之前(例如,++a)。操作数的值使用会被改变。

int a = 1;
  int b = ++a; // b = 2
复制代码
  1. 后缀增量

  2. 在这种方法中,运算符跟在操作数之后(例如,a++)。值操作数使用会改变。

int a = 1;
 int b = a++; // b = 1
 int c = a; // c = 2
复制代码

  1. decrement用于将变量的值递减1。递减有两种方式:

  1. prefix decrement
    在此方法中,运算符在操作数之前(例如,--a)。操作数的值使用会被改变。
int a = 1;
  int b = --a; // b = 0
复制代码

  1. posfix decrement
  2. 在这种方法中,运算符跟在操作数之后(例如,a- -)。操作数的值使用会改变。

int a = 1;
 int b = a--; // b = 1
 int c = a; // c = 0
复制代码

  1. 前缀和后缀组合操作的C++程序:
// 演示一元递增和递减运算符工作的 C++ 程序
#include <iostream>
using namespace std;
int main()
{
  int a = 1;
  cout << "a value: " << a << endl;
  int b = a++;
  cout << "b value after a++ : " << b << endl;
  cout << "a value after a++ : " << a << endl;
  a = 1;
  cout << "a value:" << a << endl;
  b = ++a;
  cout << "b value after ++a : " << b << endl;
  cout << "a value after ++a : "<< a << endl;
  a = 5;
  cout << "a value before decrement: " << a << endl;
  b = a--;
  cout << "b value after a-- : " << b << endl;
  cout << "a value after a-- : " << a << endl;
  a = 5;
  cout << "a value: "<< a<<endl;
  b = --a;
  cout << "b value after --a : " << b << endl;
  cout << "a value after --a : " << a << endl;
  return 0;
}
复制代码


输出:

a value: 1
b value after a++ : 1
a value after a++ : 2
a value:1
b value after ++a : 2
a value after ++a : 2
a value before decrement: 5
b value after a-- : 5
a value after a-- : 4
a value: 5
b value after --a : 4
a value after --a : 4
复制代码


上面的程序展示了后缀和前缀是如何工作的。


  1. NOT(!): 用于反转其操作数的逻辑状态。如果条件为真,则逻辑非运算符将使其为假。
If x is true, then !x is false
   If x is false, then !x is true
复制代码

  1. Addressof operator(&): 它给出一个变量的地址。它用于返回变量的内存地址。address-of 运算符返回的这些地址称为指针,因为它们“指向”内存中的变量。

& gives an address on variable n
int a;
int *ptr;
ptr = &a;
// a 的地址被复制到位置ptr。
复制代码

  1. sizeof(): 此运算符返回其操作数的大小,以字节为单位。所述的 sizeof 运算符总是先其operand.The 操作数是一个表达式,或者它可以是一个铸造。

#include <iostream>
using namespace std;
int main()
{
float n = 0;
cout << "size of n: " << sizeof(n);
return 1;
}
复制代码


输出:

size of n: 4



目录
相关文章
|
8月前
|
C++
C++类自加自减与<<运算符的重载实现
C++类自加自减与<<运算符的重载实现
|
8月前
|
C++
C++程序中的赋值运算符
C++程序中的赋值运算符
87 2
|
4月前
|
C++
【C++基础】运算符详解
这篇文章详细解释了C++中运算符的用法,包括算术运算符、赋值运算符、比较运算符和逻辑运算符,以及它们在表达式中的作用和示例。
52 2
|
5月前
|
C++
c++学习笔记02 运算符
C++学习笔记,介绍了C++中的运算符,包括基本的加减乘除、求模、前后置递增递减、赋值运算符、比较运算符和逻辑运算符的使用及其注意事项。
48 6
|
8月前
|
算法 C++ 开发者
【C++运算符重载】深入理解C++中的流运算符 >>和<<重载
【C++运算符重载】深入理解C++中的流运算符 >>和<<重载
105 0
|
7月前
|
C++
C++之运算符
C++之运算符
|
7月前
|
安全 程序员 C++
C++一分钟之-重载运算符
【6月更文挑战第21天】C++的运算符重载让程序员能为自定义类型定制运算符行为,增强代码表达力。但要注意清晰性、优先级和返回类型。遵循运算符原有意义,充分测试,并用注释解释非直观设计。示例展示了如何为复数类重载`+`运算符。避免重载内置类型,注意结合性,且慎用隐式转换。重载应提升可读性而非复杂化代码。
53 2
|
7月前
|
C++
C++一分钟之-理解C++的运算符与表达式
【6月更文挑战第18C++的运算符和表达式构成了编程的基础,涉及数学计算、逻辑判断、对象操作和内存管理。算术、关系、逻辑、位、赋值运算符各有用途,如`+`、`-`做加减,`==`、`!=`做比较。理解运算符优先级和结合律至关重要。常见错误包括优先级混淆、整数除法截断、逻辑运算符误用和位运算误解。解决策略包括明确优先级、确保浮点数除法、正确使用逻辑运算符和谨慎进行位运算。通过实例代码学习,如 `(a &gt; b) ? &quot;greater&quot; : &quot;not greater&quot;`,能够帮助更好地理解和应用这些概念。掌握这些基础知识是编写高效、清晰C++代码的关键。
48 3
|
8月前
|
C++ 编译器