C语言操作符的总结

操作符分为以下几类:

(1)算术操作符:+ - * / %(取模) 
(2)移位操作符:<< 和 >> 
(3)位操作符:& | ^ 
(4)赋值操作符:= 
(5)单目操作符:! - + & – ++ ~ * (类型) sizeof 
(6)关系操作符::> < == >= <= != 
(7)逻辑操作符:&& || 
(8)条件操作符:表达式?表达式1:表达式2 
(9)逗号表达式:表达式1,表达式2,……,变大时n 
(10)下标引用、函数调用和结构成员:[ ] ()
下面我将逐个对其进行介绍,首先是

1.算术操作符

                                                            +         -         *         /         % 

(1).除了%操作符之外。其他的几个操作符可以作用于整数和浮点数。

(2).对于/操作符如果两个操作符都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。

(3).%操作符的两个操作符必须为整数。返回的就是整数之后的余数

2.位移操作符

                                                          <<左移操作符       >>右移操作符

左移操作符移位规则:

                左边抛弃,右边补0

右移操作费移位规则:              

               算术右移情况指的是:二进制数有正负之分,补位时要注意符号位;

      逻辑移位情况指的是:不需要考虑符号产生的问题,直接补0即可。

下面给出一段代码进行举例

#include<stdio.h>
#inlude<windows.h>
int main()
{
    int a = 10;
    printf("%d\n", a >> 1);
    system("pause");
    return 0;
}
他的输出结果是5,这里需要特别注意,

      1. 移位操作符不能直接赋值改变变量。

        如果需要改变变量需要这样输入:a>>=1;

      2. 左移操作相当于/2;

        右移操作相当于*2。

3.位操作符

                                         &(按位与)       |(按位或)     ^(按位异或)

他们唯一需要注意的就是他们的操作数必须是整数

4.赋值操作符

     赋值操作符在之前的程序代码中经常出现,其操作符有:=、+=等。

     注意在连续赋值时,应从右往左赋值。

5.单目操作符

  单目操作符有:!(逻辑反操作、非)、&(取地址符)、sizeof(求长度)、~(按位取反)、++、--、*、(类型)等。

  需要注意的是:

           1. &是取地址符,%p打印地址。

           2. sizeof()是操作符,不是函数!

           3. ++/--的前置和后置

           4. *在这里是间接访问操作符,主要和指针相关。

           5. (类型)为强制类型转换操作符,例如强制将浮点型数转化成整型数时:


#include<stdio.h>
#include<windows.h>
int main()//++后置
{
    int a = 10, b = 0;
    b = a++;
    printf("a=%d,b=%d\n", a, b);
    system("pause");
    return 0;
}
a==11  b==10
#include<stdio.h>
#include<windows.h>
int main()//++前置
{
    int a = 10, b = 0;
    b = ++a;
    printf("a=%d,b=%d\n", a, b);
    system("pause");
    return 0;
}

a==11  b==11

6.关系操作符

    关系操作符主要是:==、>=、<=。

    主要出现在条件的比较判断上,如:if语句、for循环等。

7.逻辑操作符

                                         && (逻辑与)  || (逻辑非)

8.条件操作符

                                                exp1 ? exp2 : exp3 ;

int main()
{
    int a=10, b=0;
    if (a > 5)
        b = 3;
    else b = -3;
    printf("b=%d\n", b);
    system("pause");
    return 0;
}

转变为条件操作符表达

#include<stdio.h>
int main()
{
    int a=10, b=0;
    b = a > 5 ? 3 : -3;
    printf("b=%d\n", b);
    system("pause");
    return 0;
}

两种方式得到的结果是相同的。

9.逗号表达式

                                                    exp1 , exp2 , exp3 , ········ expN

所谓逗号表达式,就是用逗号隔开的多个表达式。

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

10.下表引用,函数调用和结构成员

                                        [ ] 数组下标引用操作符; ( ) 函数调用操作符。

#include<stdio.h>
#include<Windows.h>
int main()
{
	int arr[10] = {1,2,3,4,5,6,7,8,9,10}
	printf("%d\n", arr[4]);
	printf("%d\n", *arr+4);
	printf("%d\n", *(arr+4));
	printf("%d\n", *(4+arr));
	printf("%d\n", 4[arr]);
	system("pause");
	return 0;
}

他们的输出结果是一致的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值