【C语言】关于C语言操作符,你了解多少?

今天来总结一下常见的操作标识符。

一、算术操作符。

首先了解一下算术标识符都有哪些:+、-、*、/、%

这些运算符都是最基础的操作符,就不多说了。

注意

1.“%”只能用于整型。并且两个操作数必须为整数,返回的是整除之后的余数。

2.“/”如果两个数都是整数,则执行整数除法,只要有浮点数,就执行浮点数除法。

二、移位操作符。

移位操作符有两种:>>(右移操作符)、<<(左移操作符)。

特别注意右移操作时分为两种情况:

1、算术右移二进制数有正负之分,补位时要注意符号位,原来是整数则在最高位补0,原来是负数则在最高位补1;

并且负数在计算时应用补码进行计算,输出时换算为原码。

2、逻辑移位:逻辑移位情况指的是:不需要考虑符号产生的问题,左边补0,右边抛弃即可。

代码举例如下:

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a = 10;
	printf("%d\n", a >> 1);
	system("pause");
	return 0;
}它的结果输出是5。

它的结果输出是5。

 

三、位操作符。

位操作符包括:&(按位与)、|(按位或)、^(按位异或)。

1.&(按位与):是按二进制位进行与运算,任何一个数与1进行与运算,不是0就是1。

2.|(按位或)

3.^(按位异或):相同为0,相异为1。

需要注意的是,这三个操作符操作的必须是整数。

四、赋值操作符。

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

注意在连续赋值时,应从右往左赋值,例如:

a=x=y+1;

输出时a的值就应是y+1。

在这里还有一些复合赋值符也是很好用的:

 

+=     -=     *=     /=      %=      >>=      <<=      &=      |=      ^=   

 

五、单目操作符。

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

需要注意的是:

1、&是取地址符:

       &arr  是数组的地址, arr  是数组首元素的地址。

       %p  打印地址。

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

     它是计算操作数的类型长度的操作符。

     我们还可以运用它求数组元素个数:int sz=sizeof ( arr ) / sizeof ( arr[0] )

     而且需要注意的是,不管什么类型的数组,传参时传的是地址,并且是首地址,大小为4个字节。

3、++的前置和后置,——的前置与后置。

 

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

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

#include<stdio.h>
int main()
{
    int num = 0;
    float f = 3.14;
    num = (int)f;
    printf("num=%d\n", num);
    system("pause");
    return 0;
}

这里输出的结果:num=3。

六、关系操作符。

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

需要注意,这里的等于是==而不是=

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

 

七、逻辑操作符。

1.&&(逻辑与):算数中,有一项为假,则之后的&&就不用计算。

2.||(逻辑或):算数中,有一项为真,则之后的||都不用计算。

再举个栗子:

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i=0,a=0,b=2,c=3,d=4;
	i = a++&&++b&&d++;//i = a++||++b||d++;
	printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d );
	system("pause");
	return 0;
}

输出的答案是1,2,3,4。

 

 

八、条件操作符。

1、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;
}

当a=10时,通过if的条件判断后,b的值为3。

当a=-10时,b的值为-3。

如果用上述语句即可表达成:

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

两种方法结果是一样的,不过第二种条件操作符会使代码不冗余。

2、exp1、exp2、exp3(逗号表达式)

举例解释:

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

 

逗号条件句的运算规则是从左往右依次运算,其结果是最后一个表达式的结果。

 

结果输出是c=13。

八、其他操作符。

1.下标引用[]

  例如:arr[]

2.函数调用()

  例如:Add(2,3)

3.结构成员.

   ->结构体指针->成员名

   例如:stu.age   pStu->age=20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值