📜  C C++中的一元运算符(1)

📅  最后修改于: 2023-12-03 15:13:44.609000             🧑  作者: Mango

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

在C/C++语言中,一元运算符是指只需要一个操作数就可完成运算的运算符。与之相对的是二元运算符,需要两个操作数才能完成运算。

常用的一元运算符
正负号运算符(+/-)

正负号运算符用于改变一个数的正负性。当它作为一元运算符时,用于表示正号或负号。在C/C++中,只有数字类型才可以使用正负号运算符。

int a = 10;
int b = -a; // b的值为-10
int c = +a; // c的值为10
递增递减运算符(++/--)

递增递减运算符用于将变量的值加1或减1,并在表达式中返回该值。递增递减运算符在前面或后面的区别在于运算符被放在变量的前面还是后面,前置递增递减运算符会先进行运算再返回值,而后置递增递减运算符会先返回值再进行运算。

int a = 10;
int b = ++a; // b的值为11,a的值也为11
int c = a--; // c的值为11,a的值为10
取地址运算符(&)

取地址运算符用于返回变量的地址。当您需要传递变量的地址而不是变量本身时,取地址运算符非常有用。它通常用于指针变量声明和函数参数传递中。

int a = 10;
int *ptr = &a; // ptr指向a的地址
解引用运算符(*)

解引用运算符用于访问已声明的指针变量所指向的地址中的值。

int a = 10;
int *ptr = &a; // ptr指向a的地址
int b = *ptr; // b的值为10,ptr解引用为a
按位取反运算符(~)

按位取反运算符用于按位翻转操作数的所有位。

unsigned char a = 60;     // 60的二进制表示为0011 1100
unsigned char b = ~a;     // b的值为195,二进制为1100 0011
逻辑取反运算符(!)

逻辑取反运算符用于翻转操作数的真值。如果操作数为0,则返回1,否则返回0。

int a = 0;
int b = !a; // b的值为1
总结

以上就是C/C++中的一元运算符的介绍,包括正负号运算符,递增递减运算符,取地址运算符,解引用运算符,按位取反运算符和逻辑取反运算符。它们在C/C++编程中十分常见,掌握它们能够让程序员编写出更加精细和高效的代码。