C语言操作符

xiaoxiao2025-09-17  54

操作符分类:

 算术操作符 移位操作符 位操作符 赋值操作符 复合赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号操作符 下标引用、函数调用和结构成员 算术操作符     操作符                                                                                               功能       +                                                                   和数学中运算规则相同       -       *       /这个操作符需要注意的是:除的时候如果’/’两边只要有(一个或两个)浮点数,采用的是浮点型除法,若’/’两边都是整型,则采用的是整型除法。     %                                       这个操作符两边的数只能是整数,它返回的是整除之后的余数

 

移位操作符       操作符                                                                         功能                                         <<                                                                     左移操作符        >>                                                                    右移操作符 移位操作符作用的对象是一个数的补码;对于左移:左边抛弃,右边补0;对于右移:右边抛弃,左边补原来的符号位(采用算术移位);

对于左移操作符,分为两种移位规则:

逻辑移位 

   左边最高位直接补0,右边丢弃,不考虑之前数的符号位。 

算术移位

       左边最高位用之前数的最高位符号位填充,是右边丢弃,左边最高位和之前数相同的符号位。目前编译器通常采用的是算术移位规则。        注意:对一个数移位操作完成后,当前的数不会改变的,除非把它赋值给另外一个变量。        对于移位操作符,不要移动负数位,这个是标准未定义的。 注:左移操作相当于给之前的数乘2,右移操作相当于给之前的数除2;  例:求一个整数存储在内存中的二进制中1的个数。

#include<stdio.h> #include<stdlib.h> int count_one_bits( int value) { int count=0; while (value) { value &= value - 1; count++; } return count; } int main() { printf("%u\n",count_one_bits(15)); system("pause"); return 0; } 位操作符

 

           操作符                                                             功能                                                      &                                                         按位与            丨                                                        按位或             ^                                                       按位异或

位操作符作用的对象也是一个数的补码,并且它们的操作数必须是整数。   例:不能创建临时变量,实现两个数的交换

#include<stdio.h> #include<stdlib.h> int main() { int a = 1; int b = 2; a = a^b; b = a^b; a = a^b; printf("%d %d\n", a,b); system("pause"); return 0; }

 

赋值操作符              操作符                                                                      功能                                                                 =                                                              给变量赋值

注:不要连续赋值

 

复合赋值符              操作符                                                                         功能                                     +=(-= )                                        相加之后赋值(相减之后赋值)               /=                                                  相除之后赋值              *=                                                  相乘之后赋值              %=                                                  取余之后赋值             >>=                                                 右移之后赋值             <<=                                                   左移之后赋值              |=                                                    按位或之后赋值             ^=                                                      按位与之后赋值

使用用复合操作符可以使代码更简洁。

单目操作符                 操作符                                                                        功能                                            !                                                                  逻辑反操作                 +                                                                        正值                 -                                                                        负值                &                                                                        取地址           sizeof                                                     操作数的类型长度(以字节为单位)              ~                                                    对一个数的二进制按位整体取反             --                                                                前置、后置--            ++                                                                 前置、后置++             *                                              间接访问操作符(解引用操作符)        (类型)                                                              强制类型转换

 

sizeof操作符(不是函数)计算的是变量(类型)所占空间的大小,是按字节来计算,而且sizeof (a+b)里面的表达式不参与计算,若a,b都是int行类型,其结果依然是4;  当数组作为参数为函数传参时,由于数组要发生降维,其会降维成指向其内部元素类型的指针,如果此时在一个函数中sizeof计算数组的大小是不可以的,其计算的是数组降级为指针的大小(4个字节),所以,若函数要得到一个数组的大小,应该在主函数中计算。  对于前置++或 - -,先操作,再使用,对于后置++或 - -,先使用,再操作。 关系操作符           操作符                                                                                     功能                                                        >                                                                                     大于             <                                                                                       小于            <=                                                                                    小于等于            >=                                                                                  大于等于            !=                                                                                     不等于           ==                                                                                      等于

需要注意,不要将等于(==)写成赋值操作(=)。

逻辑操作符                 操作符                                                                            功能                                        &&                                                                          逻辑与                    ||                                                                          逻辑或 条件操作符

exp1?exp2:exp3    exp1为真,结果为exp2,否则结果是exp3

逗号操作符

exp1,exp2,…expN  

从左往右依次执行,整个表达式结果是最后一个表达式的结果

下标引用、函数调用和结构成员            操作符                                                                               功能                                          [ ]                                     数组下标操作符,操作数:数组名+一个索引值              ( )            函数调用操作符,接受一个或多个操作数:第一个是函数名,其余是函数参数               .                                                         访问结构体成员               ->                                                         访问结构体成员

 

 

转载请注明原文地址: https://www.6miu.com/read-5036487.html

最新回复(0)