初始C语言——详细讲解操作符以及操作符的易错点

这篇具有很好参考价值的文章主要介绍了初始C语言——详细讲解操作符以及操作符的易错点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

 第一章 “C“浒传——初识C语言(更适合初学者体质哦!)

 第二章 详细认识分支语句和循环语句以及他们的易错点 

 第三章 初阶C语言——特别详细地介绍函数

 第四章 初始C语言——详细地讲解数组的内容以及易错点

 第五章 初始C语言——详细讲解操作符以及操作符的易错点


目录

系列文章目录

前言

一、操作符分类

二、算术操作符(两个操作数)

三、移位操作符(两个操作数)

3.1 左移操作符 <<

 3.2 右移操作符 >>

3.3 警告 

四、位操作符(两个操作数)

4.1 按位与 &

按位与的具体应用:

 4.2 按位或  |

4.3 按位异或 ^ 

按位异或的具体应用:

4.4 有关二进制位的练习 

五、赋值操作符

 复合赋值符

六、单目操作符(一个操作数)

6.1 单目操作符介绍

6.2 逻辑反操作符 ! 

 6.3 取地址操作符 & 和解引用操作符 * 

6.4 计算操作数的类型长度 sizeof

6.5 ++ 和 -- 操作符

七、关系操作符(两个操作符)

八、逻辑操作符(两个操作符)

8.1 逻辑与操作符 &&

8.2 逻辑或操作符 || 

8.3 逻辑短路 

九、条件操作符(三目操作符)

十、逗号表达式 

十一、下标引用、函数调用和结构成员 

11.1 [ ]下标引用操作符(两个操作数)

11.2 ( )函数调用操作符(至少一个操作数)

11.3 访问一个结构的成员 

总结


前言

       在上一章内,小编带领大家详细地学习了有关数组的相关内容,学习了一维数组和二维数组的创建与初始化一维数组和二维数组在内存中如何存储数组越界数组作为函数参数怎么办?

       而在这一章内,小编将要带领大家进行学习操作符的内容,大家从目录也不难看出这章内容也是很多,已经囊括了所有操作符,希望大家也能有耐心地将这一章看完。


一、操作符分类

       为什么要学习操作符?是为了进行表达式求值。在学习操作符之前,先跟着小编进行学习操作符的分类吧!

  • 算术操作符:+、-、*、/、%
  • 移位操作符:<<、>>
  • 位操作符:&、|、^
  • 赋值操作符:=、+=、-=、/=、*=、%=……
  • 单目操作符:!、-、+、sizeof、~、(类型)
  • 关系操作符:>、<、>=、<=、!=、==
  • 逻辑操作符:&&、||
  • 条件操作符:exp1?exp2:exp3
  • 逗号表达式:exp1,exp2,exp3,……expN
  • 下标引用、函数调用和结构成员:[ ]、()、.、->

二、算术操作符(两个操作数)

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       在这一部分,小编认为没什么可以讲的,但是这篇博客是详细讲解操作符,所以还是要讲解一下易错点吧!算术操作符,顾名思义就是数学上的一些运算+、-、*、/、%。+、-、*这三个运算符没有什么可以讲的,接下来,小编重点讲解/、%。 

  1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数
  2. 对于 / 操作符,如果两个操作数都为整数,执行整数除法。而两个数中只要有浮点数执行的就是浮点数除法。
  3. % 操作符的两个操作数必须为整数,返回的是整除之后的余数。

三、移位操作符(两个操作数)

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       小编在讲之前先提一嘴,移位操作符移动的是二进制的位。在这里,我们先来讲一下C语言的二进制。

       对于一个整数来说是四个字节,也就是==32bit位一个整数写成二进制序列的时候,就是32个bit位。下面看图理解:

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       1)对于有符号的整数来说,最高位的一位是符号位:符号位是1,表示负数;符号位是0,表示正数。 

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       2)对于无符号整数来说,没有符号位,所有位都是有效位。

整数的二进制表示形式有三种原码反码补码

原码:按照数值的正负,直接写出的二进制序列就是原码。

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

反码:原码的符号位不变,其他位按位取反。

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

补码:反码的二进制 +1 就是补码。 

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       从例子中,我们可以看出对于正的整数原码,反码,补码是相同的,无需计算;对于负的整数原码,反码,补码是需要进行计算的。

               整数在内存中存放的都是补码,整数在计算的时候也是用二进制进行计算。


3.1 左移操作符 <<

移位规则:左边抛弃,右边补0。

       在常规的数字里面是不会出现特殊情况的,一般地,在效果上,左移一位相当于乘2对于正数来说,还是对于负数来说,其实都一样,只是在一些特别大的数是不一样的,基本都遵循:丢弃符号位,不管左边高位是什么,后面补的数字成为符号位。

下面举个例子:

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

 


3.2 右移操作符 >>

       小编先说一句:右移操作符比较难。首先右移运算分为两种:1.逻辑右移2.算术右移这两种主要的区别是:关键看左边补什么

移位规则:1.逻辑移位:左边用0填充,右边丢弃;2.算术移位:左边用原该值的符号位填充,右边丢弃。

       同样地,在常规的数字里面是不会出现特殊情况的,一般地,在效果上,右移一位相当于除以2对于正数来说,遵循:丢弃右边一位,左边直接补0而对于负数来说,有两种情况,所以一般请先了解你所使用的编译器是哪种右移运算,方法在下面。遵循:如果是算术右移:左边用原改制的符号位填充;如果是逻辑右移:左边补0。

 下面举个例子:

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       对于正整数来说,这两种右移操作都一样;而对于负整数来说,这两种右移操作不太一样,所以要重点来看负整数。我们可以根据这个差异,编写一个代码看你们所使用的编译器支持哪种右移操作。vs用的是算术右移,大部分编译器用的都是算术右移。下面看代码:

#include <stdio.h>
int main()
{
	int a = -10 >> 1;
	if (a < 0)
		printf("该编译器用的是算术右移!\n");
	else
		printf("该编译器用的是逻辑右移!\n");
	return 0;
}

3.3 警告 

对于移位操作符,不要移动负数位,这个是标准未定义的。看下图:

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言


四、位操作符(两个操作数)

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       在初学C语言时,老师应该是不会讲这一部分的,起码我们老师没有讲,但这一部分是非常重要的, 他在二进制的一些题目中有大作用但大家不要将位操作符与逻辑操作符搞混!下面,就由小编我来带领大家进行分开学习吧!

4.1 按位与 &

运算规则:同时为1,才为1;一旦有0,则为0。

 我们记住这个运算规则后进行计算即可,下面进行代码讲解:

int main()
{
	int a = 7;
	int b = -10;
	int c = a & b;//按二进制的位与
	//00000000 00000000 00000000 00000111 ----- 7的补码
	//10000000 00000000 00000000 00001010
	//11111111 11111111 11111111 11110101
    //*************************************
	//*11111111 11111111 11111111 11110110*----- -10的补码
	//*00000000 00000000 00000000 00000111*----- 7的补码
    //*************************************
	//同1为1,有0则0
	//00000000 00000000 00000000 00000110 ----- 6
	printf("%d", c);
	return 0;
}

按位与的具体应用:

       如果我想得到某个数的二进制补码上某一位到底是1还是0,我们可以使用按位与运算进行得到。为什么呢?

       基本思路是:因为按位与的运算规则是:同1为1,有0则0。假如你想要求某个数的二进制补码上最后一位的数,你只需按位与上1(2^0),则可以得出某个数的二进制补码上最后一位的数是什么,如果按位与上1等于1的话,最后一个数是1,如果是0,则最后一个数是0。同理,如果你想要求某个数的二进制补码上倒数第二位的数,你只需按位与上2(2^1)

题目一:求某个数的二进制补码上某一位的数是什么?

********************************************************************************************************

方法:由上面的基本思路可以总结出一个公式:如果你想要求某个数的二进制补码上倒数第N位的数,你只需要用某个数按位与上2的(N-1)次方(2^(N-1))即可。

********************************************************************************************************

代码:

int main()
{
	int num = 10;
	//如果想要求10的二进制补码中最后一位数
	int ans = num & 1;
	printf("ans = %d\n", ans);
	return 0;
}

题目二: 求出某一个数的二进制补码的最后一个为1的位置的数。

********************************************************************************************************

方法:

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

********************************************************************************************************

代码:

 int onlyone = eor & (~eor + 1);

 4.2 按位或  |

运算规则:同时为0,才为0;一旦有1,则为1。

这种运算是不需要进行讲解的,只要记住运算规则就会做运算,下面进行代码讲解:

int main()
{
	int a = 7;
	int b = -10;
	int c = a | b;//按二进制的位或
	//00000000 00000000 00000000 00000111 ----- 7的补码
	//10000000 00000000 00000000 00001010
	//11111111 11111111 11111111 11110101
	//*************************************
	//*11111111 11111111 11111111 11110110*----- -10的补码
	//*00000000 00000000 00000000 00000111*----- 7的补码
	//*************************************
	//同0为0,有1则1
	// 11111111 11111111 11111111 11110111 补码
	// 11111111 11111111 11111111 11110110 反码
	// 10000000 00000000 00000000 00001001 原码 --- -9
	printf("%d", c);
	return 0;
}

4.3 按位异或 ^ 

运算规则:相同为0,不同为1。在这里提两个式子要记住:a ^ a = 0;a ^ 0 = a。

性质:按位运算遵循交换律和结合律。

       虽然,按位异或的运算规则比较简单,但是以后还要学习一个按位同或的运算规则:相同为1,不同为0。所以,这两种运算容易搞混。

那怎么记按位异或呢?按位异或——就是无进制相加怎么理解无进制相加呢?看下图:

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

int main()
{
	int a = 7;
	int b = -10;
	int c = a ^ b;//按二进制的位异或
	//00000000 00000000 00000000 00000111 ----- 7的补码
	//10000000 00000000 00000000 00001010
	//11111111 11111111 11111111 11110101
	//*************************************
	//*11111111 11111111 11111111 11110110*----- -10的补码
	//*00000000 00000000 00000000 00000111*----- 7的补码
	//*************************************
	//相同为0,不同为1
	// 11111111 11111111 11111111 11110001 补码
	// 11111111 11111111 11111111 11110000 反码
	// 10000000 00000000 00000000 00001111 原码 --- -15
	printf("%d", c);
	return 0;
}

按位异或的具体应用:

 一道很变态的面试题: 

题目一:不能创建临时变量(第三个变量),实现两个数的交换。

********************************************************************************************************

方法1:先将a,b两个数进行相加赋给a,然后用a减去b赋给b,这样b中存的就是a,然后再用a减去b(b的值此时是a)赋给a,则a的值就是b的值了。

********************************************************************************************************

代码:

int main()
{
	int a = 10;
	int b = 90;
	printf("交换前:a = %d, b = %d\n", a, b);
	//方法一:
	a = a + b;
	b = a - b;
	a = a - b;
	printf("交换后:a = %d, b = %d\n", a, b);
	return 0;
}

缺陷:如果变量的值非常大的话,就会出现数据截断

********************************************************************************************************

方法2:用按位异或,根据a ^ a = 0,a ^ 0 = a,就可以得出。在这个过程中不会产生进位,则数据不会溢出。

********************************************************************************************************

代码:

int main()
{
	int a = 10;
	int b = 90;
	printf("交换前:a = %d, b = %d\n", a, b);
	//方法二:
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("交换后:a = %d, b = %d\n", a, b);
	return 0;
}

缺陷:这个代码可读性不高效率也不高

题目二: 给定一个数字arr,其中只有两个数字出现了奇数次,其它数字都出现了偶数次,按照从小到大顺序输出这两个数。

********************************************************************************************************

方法:先将这些数全部异或一下,可以得到出现奇数次的两个数的异或结果赋给eor,说明这两个数一定不相等,而且eor的二进制中一定有一个位置是1,求出此位置为1的数(看4.1 按位与的具体应用),然后将数组里的数分成两个部分,一个部分是此位置为1的数,另一部分是此位置为0的数。那么这两个数就分开了,随便挑一组数据进行异或就可以求出一个数,再用eor异或就求出了另一个数。

********************************************************************************************************

代码:

#include <stdio.h>
int main() 
{
    int n = 0;
    int eor = 0, eor1 = 0;
    int temp = 0, ans = 0;
    scanf("%d", &n);
    int arr[100000];
    for(int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    for(int i = 0; i < n; i++)
    {
        eor ^= arr[i];
    }
    int onlyone = eor & (~eor + 1);
    for(int i = 0; i < n; i++)
    {
        if((onlyone & arr[i]) != 0)
            eor1 ^= arr[i];
    }
    ans = eor ^ eor1;
    if(eor1 > ans)
    {
        temp = eor1;
        eor1 = ans;
        ans = temp;
    }
    printf("%d %d\n", eor1, ans);
    return 0;
}

4.4 有关二进制位的练习 

题目:编写代码实现:求一个整数存储在内存中的二进制中1的个数。


五、赋值操作符

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       赋值操作符是一个很棒的操作符,如果之前的值你不满意,使用这个操作符你可以给自己重新赋值。

举个例子:

int weight = 120;//体重
weight = 80;//不满意就赋值
double salary = 100000.0;
salary = 200000.0; //使用赋值操作符赋值

赋值操作符可以连续使用,不过要从右向左依次执行。 

	int a = 10;
	int x = 0;
	int y = 20;
	a = x = y + 1; //连续赋值,可读性不高
	//改进
	x = y + 1;
	a = x;//这样写更加清晰爽朗而且便于调试

 复合赋值符

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

这些运算符都可以写成复合的效果,使代码更加整洁

举个例子:

	int x = 10;
	x = x + 10;
	x += 10; //这样写比较整洁

六、单目操作符(一个操作数)

6.1 单目操作符介绍

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

6.2 逻辑反操作符 ! 

运算规则:将真的变成假的,将假的变成真的

 下面看使用场景:

int main()
{
    int a = 0;
    if(!a)
        printf("hehe\n");
    return 0;
}

 6.3 取地址操作符 & 和解引用操作符 * 

       取地址操作符是将一个变量的地址取出来存放在p中,解引用操作符是通过p所存放的地址找到p所指向的对象。

6.4 计算操作数的类型长度 sizeof

int main()
{
	int a = 10;
	printf("%d\n", sizeof(a));
    printf("%d\n", sizeof a); //这种写法是正确的,证明了sizeof不是函数,函数后的括号省略不了
	printf("%d\n", sizeof(int));
	return 0;
}

       由上图代码可知,sizeof既能计算变量的长度,也能计算类型长度。此代码运行后,为什么会出现下图情况:

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       因为sizeof计算的结果是size_t类型的size_t是无符号整形的,对size_t类型的数据进行打印,可以使用%zd。 在一些古老的编译器是不支持%zd的,也可以使用%u

6.5 ++ 和 -- 操作符

运算规则:前置++(--):先+(-)1,后使用;后置++(--):先使用,后+(-)1。 


七、关系操作符(两个操作符)

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

        这些操作符比较简单,没有什么可以讲的,但是我们要注意一些运算符使用时候的陷阱。

警告:在编程的过程中 == 和 = 不小心写错,导致的错误。


八、逻辑操作符(两个操作符)

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

8.1 逻辑与操作符 &&

运算规则: 逻辑与就是并且,全真为真,有假即假。

区分逻辑与按位与

1 & 2  -------->0
1 && 2 -------->1

8.2 逻辑或操作符 || 

运算规则:逻辑或就是或者,全假为假,有真即真。

 区分逻辑或按位或

1 | 2 -------->3
1 || 2 ------->1

8.3 逻辑短路 

运算规则:&& 左边操作数如果为假,右边的运算式可以不算;|| 右边操作数如果为真,右边的运算式可以不算 。

学到这个操作符后,我突然想到了我同学问我的一道题目:

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

       我刚看到这个题是有疑惑的,因为b和c选项感觉都是错的,其实并不是。因为c选项是涉及一些知识点是我不知道的,因为有逻辑短路,在C语言中,我们进行运算的时候,我们需要进行优化代码,不让这个程序进行超负荷的运算。在程序中,因为,a||(b = c)是这个逻辑运算,为什么会有逻辑短路呢?为了减少程序的计算量,在进行这个逻辑运算的时候,C语言采用了在保持原逻辑运算正确的同时,通过已确定表达式的确切值的情况下,不计算后面的运算来简化运算。

       在或运算中,如果a为真,后面的值不管是什么,我们都不需要进行计算,因为程序的结果已经知道了,就应该进行逻辑短路然后就不计算b = c,所以没有将c赋值给b, b还是等于原值。如果a为假,说明后面的结果可能会影响整个结果,所以就不能进行逻辑短路。

下面有一道笔试题:

题目:

int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ && ++b && d++;
	printf(" a = %d\n b = %d\n c = %d\n d = %d\n", a, b, c, d);
	return 0;
}

答案:

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言


九、条件操作符(三目操作符)

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

 我感觉这个操作符是用来简化代码的,具体看下面代码:

if (a > 5)
	b = 3;
else
	b = -3;
//等价于
b = a > 5 ? 3 : -3;

具体应用: 

题目:使用条件表达式实现找两个数中的较大值

方法:利用条件表达式

代码:

int main()
{
	int a = 90, b = 78;
	int ans = a > b ? a : b;
	printf("%d\n", ans);
	return 0;
}

十、逗号表达式 

初始C语言——详细讲解操作符以及操作符的易错点,初阶C语言,c语言,开发语言

运算规则:从左向右依次执行计算,整个表达式的结果是最后一个表达式的结果,前面的计算可能会影响后面的结果。 

 下面看使用场景:

	a = get_val();
	couny_val(a);
	while (a > 0)
	{
		//业务处理
		a = get_val();
		couny_val(a);
	}
	//如果使用逗号表达式,改写:
	while (a = get_val(), couny_val(a), a > 0)
	{
		//业务处理
	}

十一、下标引用、函数调用和结构成员 

11.1 [ ]下标引用操作符(两个操作数)

操作数:一个数组名 + 一个索引值

int arr[10]; //创建数组
arr[9] = 10; //使用下标引用操作符
[ ]的两个操作数是arr和9。

11.2 ( )函数调用操作符(至少一个操作数)

接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

11.3 访问一个结构的成员 

.         结构体.成员名

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


总结

       在这一部分,小编详细地编写了有关操作符详解的一篇博客。希望大家看完以后,进行点评,谢谢大家!文章来源地址https://www.toymoban.com/news/detail-641127.html

到了这里,关于初始C语言——详细讲解操作符以及操作符的易错点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言】中的位操作符和移位操作符,原码反码补码以及进制之间的转换

    欢迎大家来到c语言知识小课堂,今天的知识点是操作符和进制 同样都是数字1111,不同进制下数字的大小不同,第二行代表的是其各位数字十进制下的大小,将各位数字的十进制大小相加即1111在这个进制下转化为十进制的大小,从图中我们可以看出来 进制的定义:从右往左

    2024年02月22日
    浏览(52)
  • 初始Go语言2【标识符与关键字,操作符与表达式,变量、常量、字面量,变量作用域,注释与godoc】

      go变量、常量、自定义类型、包、函数的命名方式必须遵循以下规则: 首字符可以是任意Unicode字符或下划线。 首字符之外的部分可以是Unicode字符、下划线或数字。 名字的长度无限制。 理论上名字里可以有汉字,甚至可以全是汉字,但实际中不要这么做。 Go语言

    2023年04月09日
    浏览(55)
  • 【初始C语言2】详细认识分支语句和循环语句以及他们的易错点,应用(猜大小游戏)

    系列文章目录  第一章 “C“浒传——初识C语言(更适合初学者体质哦!)  第二章  【初始C语言2】详细认识分支语句和循环语句以及他们的易错点,应用(猜大小游戏) 目录 系列文章目录 前言:        一、什么是语句? 1.1 表达式语句 1.2 函数调用语句 1.3 控制语句

    2024年02月10日
    浏览(45)
  • 学了那么长时间的编程,C语言的各种操作符都搞不懂?点开这里有详细的介绍—>

    目录 前言 一、原码、反码、补码的基础概念 1.原码 2.反码 3.补码 二、原码、反码、补码的计算方法 1.原码 2.反码 3.补码 三、算术操作符 四、移位操作符 1. 左移操作符 移位规则: 2. 右移操作符 移位规则: (1) 逻辑移位 (2) 算术移位 五、位操作符 1. 按位与运算(AND)

    2024年02月10日
    浏览(41)
  • C生万物 | 操作符汇总大全【庖丁解牛,精细讲解】

    本篇博客全站热榜最高排名:2 因为MarkDown的语法,所以用图片的形式显示 对于算术操作符而言有上面这五种,对于前面的【+】、【-】、【*】来说操作数可以是整数或者浮点数 对于【/】来说,叫做 整除 ,结果就是我们在数学中说到的 商 。若是两边都是整数,则执行执行

    2023年04月08日
    浏览(51)
  • 【C语言初阶】带你轻松玩转所有常用操作符(1) ——算数操作符,移位操作符,位操作符

    君兮_的个人主页 勤时当勉励 岁月不待人 C/C++ 游戏开发 Hello,这里是君兮_,最近要准备期末复习了,可能更新的就不会那么频繁了,下个星期恢复正常更新。 今天给大家带来的是操作符详解,由于这部分的内容比较多,可能会分成几部分讲,今天带来的是第一部分的内容,废

    2024年02月11日
    浏览(45)
  • <C语言> 操作符

    加法(+):用于将两个操作数相加。 减法(-):用于将第一个操作数减去第二个操作数。 乘法(*):用于将两个操作数相乘。 除法(/):用于将第一个操作数除以第二个操作数。 取模(%):用于求两个操作数相除的余数。 乘法、除法和取模具有相同的优先级,高于加法

    2024年02月12日
    浏览(54)
  • 【C语言】操作符

    算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符 逻辑操作符 条件操作符 逗号操作符 下标引用、函数调用和结构成员操作符 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只

    2024年01月16日
    浏览(52)
  • RxJS中高阶操作符的全面讲解:switchMap,mergeMap,concatMap,exhaustMap

    原文链接:https://blog.angular-university.io/rxjs-higher-order-mapping/ 有一些在日常开发中常用的RxJS的操作符是高阶操作符:switchMap,mergeMap,concatMap,以及exhaustMap。 举个例子,程序中大多数的网络请求都是通过以上某个操作符来完成的,所以为了能够写出几乎所有反应式编程,必须熟

    2024年01月20日
    浏览(42)
  • C语言操作符练习

    曾经有一道面试题,要求 不能创建临时变量(第三个变量),实现两个数的交换。 这道题如果没有前半句的修饰,就只是简单的一道基础题。 法一: 但是如果加上了前半句的修饰,就需要更换思路了。 法二: 第二种方法比第一种方法更考验思维,但是中方法也有弊端,如

    2024年02月19日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包