运算符基础

一、算数运算符

符号有:+、-、*、/、%

1.区分开数学中的算数运算和c语言中的算数运算。

举个除法的例子:

3/2 = 1 而不是数学计算中的3/2 = 1.5

那么要怎么才能是数学计算的结果呢?

如下:

3.0 / 2 = 1.5

我们把3/2这种没有小数的型式称为整数除法

3.0/2有小数的型式称为浮点数除法

*新手朋友特别要注意这个:

区分开数学和c语言的不同

2.计算口诀

2.1通用口诀:

有整数的计算——结果为整数

有小数的计算——结果为小数

2.2取余细节:

运算的数据必须全部是整数

获取余数的正负,是跟第一个数字保持一致

eg.

#include <stdio.h>
int main()
{
    printf("%d", 10 % 3); //结果1
    printf("%d", -10 % 3);//结果-1
    printf("%d",10 % -3);//结果1
    return 0;
}

3.进阶操作

拆分数值:(利用整除和求余)

意思是将数字的每一位都拆分出来

#include <stdio.h>
int main()
{
    //g表示个位,s表示十位,b表示百位
	int g,s,b;
	int a = 134;
	g = a % 10;
	s = a/10%10;
	b = a/100%10;
	printf("个位是%d\n十位是%d\n百位是%d\n",g,s,b);
return 0;
}

总结:

个位——数值%10

十位——数值/10%10

百位——数值/100%10

......

是多少位就除10多少平方,再求余。

4.转化规则

4.1隐式转换:

4.1.1定义

把取值范围小的,转换为取值范围大的。

4.1.2规则

a.取值范围小的,和取值范围大的进行计算,小的会自动提升为大,的再进行计算。

b.short、 char类型的数据在运算的时候,先提升为int,再进行计算。

4.1.3如何看范围的大小

char < short < int < long < long long < float < double

eg.

#include <stdio.h>
int main()
{
    short a = 10;
    short b = 20;
    //short 自动转换为 int
    int c = a + b;
    printf("%d",c);
return 0;
}

4.2强制转换

4.2.1定义

如果想把取值范围大的,赋值给取值范围小的,就需要强制转换

4.2.2格式:
目标数据类型 变量名 = (目标数据类型)被强制转换的数据

eg.

#include <stdio.h>
int main()
{
    short a = 10;
    short b = 20;
    //将int类型转换为short类型
    short c = (short) (a + b);
    //记得对a+b整体框起来
    printf("%d",c);
    return 0;
}

注意:

强制转换的正确格式:

short c = (short) (a + b);

错误的强制转换格式:

short c = short (a + b);

弊端:

有可能导致数据错误!

4.3字符串相加

char 类型的数据在运算的时候, 通过ASCLL码表,先提升为int,再进行运算。

eg.

#include <stdio.h>
int main()
{
    char a = 'A';
	printf("%d",a + 1);//显示ASCLL码值
    return 0;
}

如果我就想看他的字母为多少,怎么办?

改变一下占位符!

#include <stdio.h>
int main()
{
    char a = 'A';
	printf("%c",a + 1);//显示字符
    return 0;
}

4.3.1 ASCLL码表

重点记住三个:
0——48

A——65

a——97

A 与 a相差32个值。

二、自增、自减运算符

1.自增运算符(++)

1.1定义:

a++ 与 ++a都是对a变量进行+1

可以简单理解为:a =a + 1

1.2单独使用:

a++ 与 ++a 的效果一样

#include <stdio.h>
int main()
{
    int a;
    a = 0;
    a++;
    printf("a++后的值为%d",a);
    ++a;
    printf("++a后的值为%d",a);
    return 0;
}

1.3参与计算:
a++ 与 ++a 的效果就会不一样了

a++是先用,再自增

++a是先自增,再使用

#include <stdio.h>
int main()
{
    int a = 6;
    int sum=0;
    sum = a++;//先把a赋值给sum,再对a进行+1
    printf("把a++赋值给sum,sum = %d\n",sum);
    printf("a++后a的值为:%d\n",a);
    //把sum重新变成0
    sum = 0;
    sum = ++a;//先把a进行+1,再把a赋值给sum
    printf("把++a赋值给sum,sum= %d\n",sum);
    printf("++a后a的值为:%d\n",a);
    return 0;
}


2.自减运算符(--)

1.1定义:

a-- 与 --a都是对a变量进行-1

可以简单理解为:a =a- 1

1.2单独使用:

a-- 与 --a 的效果一样

#include <stdio.h>
int main()
{
    int a;
    a = 0;
    a--;
    printf("a--后的值为%d",a);
    --a;
    printf("--a后的值为%d",a);
    return 0;
}

1.3参与计算:
a-- 与 --a 的效果就会不一样了

a--是先用,再自增

--a是先自增,再使用

#include <stdio.h>
int main()
{
    int a = 6;
    int sum=0;
    sum = a--;//先把a赋值给sum,再对a进行-1
    printf("把a--赋值给sum,sum = %d\n",sum);
    printf("a--后a的值为:%d\n",a);
    //把sum重新变成0
    sum = 0;
    sum = --a;//先对a进行-1,再把a赋值给sum
    printf("把--a赋值给sum,sum= %d\n",sum);
    printf("--a后a的值为:%d\n",a);
    return 0;
}

三、赋值运算符分类

在 C 语言中,赋值运算符 = 用于将一个值赋给一个变量。以下是赋值运算符的一些基本使用方法:

#include <stdio.h>

int main() 
{
    int num = 10;  // 定义一个整数变量 num 并初始化为 10
	int anotherNum;
    printf("num = %d\n", num);

    num = 20;  // 将 num 的值修改为 20
    printf("num = %d\n", num);

    anotherNum = num + 5;  // 将 num 的值加 5 后赋给 anotherNum
    printf("anotherNum = %d\n", anotherNum);

    return 0;
}

在上述代码中,我们首先定义了一个整数变量 num 并将其初始化为 10。然后,我们使用赋值运算符将 num 的值修改为 20。接下来,我们定义了另一个整数变量 anotherNum,并将 num 的值加 5 后赋给 anotherNum

除了简单的赋值操作,赋值运算符还可以与其他运算符结合使用,形成复合赋值运算符,如 +=-=*=/= 等。例如:

#include <stdio.h>

int main() 
{
    int num = 10;
    num += 5;  // 相当于 num = num + 5
    printf("num = %d\n", num);

    num -= 3;  // 相当于 num = num - 3
    printf("num = %d\n", num);

    num *= 2;  // 相当于 num = num * 2
    printf("num = %d\n", num);

    num /= 4;  // 相当于 num = num / 4
    printf("num = %d\n", num);

    return 0;
}

注意点:
1.不要在+=的中间添加空格。

2.不要把“="写成了”==“。

四、关系运算符

在 C 语言中,关系运算符用于比较两个值的关系。关系运算符包括:

  1. >(大于)
  2. <(小于)
  3. >=(大于等于)
  4. <=(小于等于)
  5. ==(等于)
  6. !=(不等于)

关系运算符的运算结果为整数类型,通常是 01。如果关系成立,结果为 1;如果关系不成立,结果为 0

以下是关系运算符的示例代码:

#include <stdio.h>

int main() 
{
    int num1 = 10, num2 = 5;

    // 大于
    if (num1 > num2) 
    {
        printf("%d 大于 %d\n", num1, num2);
    }

    // 小于
    if (num1 < num2) 
    {
        printf("%d 小于 %d\n", num1, num2);
    } else {
        printf("%d 不小于 %d\n", num1, num2);
    }

    // 大于等于
    if (num1 >= num2) 
    {
        printf("%d 大于等于 %d\n", num1, num2);
    }

    // 小于等于
    if (num1 <= num2) 
    {
        printf("%d 小于等于 %d\n", num1, num2);
    } else {
        printf("%d 不小于等于 %d\n", num1, num2);
    }

    // 等于
    if (num1 == num2) 
    {
        printf("%d 等于 %d\n", num1, num2);
    } 
    else 
    {
        printf("%d 不等于 %d\n", num1, num2);
    }

    // 不等于
    if (num1!= num2) 
    {
        printf("%d 不等于 %d\n", num1, num2);
    }

    return 0;
}

7.总结

7.1不要把”==“写成”=“

7.2不要在 >= 之间写空格

五、逻辑运算符

在 C 语言中,逻辑运算符用于对逻辑值(真或假)进行操作。逻辑运算符包括:&&(逻辑与)、||(逻辑或)、!(逻辑非)。

  • &&(逻辑与):当且仅当两个操作数都为真时,结果为真。
  • ||(逻辑或):只要两个操作数中有一个为真,结果为真。
  • !(逻辑非):将操作数的逻辑值取反。

以下是一些示例:

#include <stdio.h>

int main() {
    int a = 5, b = 10, c = 15;

    // 逻辑与
    if ((a < b) && (b < c)) 
    {
        printf("符号条件\n");
    } 
    else 
    {
        printf("不符合条件\n");
    }

    // 逻辑或
    if ((a > b) || (b < c)) 
    {
        printf("符合条件\n");
    } 
    else 
    {
        printf("不符合条件\n");
    }

    // 逻辑非
    if (!(a == b)) 
    {
        printf("a与b不相等\n");
    } 
    else
    {
        printf("a与b相等\n");
    }

    return 0;
}

在使用逻辑运算符时,需要注意以下几点:

  1. 逻辑运算符的操作数通常是关系表达式或其他逻辑值。
  2. &&|| 运算符具有短路特性。对于 && 运算符,如果第一个操作数为假,那么就不会计算第二个操作数;对于 || 运算符,如果第一个操作数为真,那么就不会计算第二个操作数。
  3. ! 运算符是一元运算符,它只对一个操作数进行操作。
  4. 优先级:
    ! > && > || >赋值

短路效果的例子:

1.&&的短路效果应证了——两真为真

#include <stdio.h>
int main()
{
    int a = 1, b = 5;
    a > 10 && ++b ;
    printf("a =%d\nb = %d",a,b);//a = 1,b = 5
    return 0;
}

2.||的短路效果应征了——一真为真

#include <stdio.h>
int main()
{
    int a = 1, b = 5;
    a > 0 || ++b;
    printf("a = %d\nb= %d\n",a,b);//a = 1, b = 5
    return 0;
}

六、三元运算符

格式: 关系表达式? 表达式1:表达式2

关系表达式为真的化执行表达式1,为假的的话执行表达式2

例子:

#include <stdio.h>
int main()
{
    int max = 0;
    int a = 1,b =2;
    //找最大值
    max =a > b? a:b;
    printf("最大值max = %d",max);
    return 0;
}

七、逗号运算符

逗号运算符,它用于将多个表达式连接成一个表达式,并从左到右依次计算这些表达式。逗号运算符的最终结果是最后一个表达式的值。

例如,在 C 语言中,以下代码展示了逗号运算符的使用:

int a = 1, b = 2, c;
c = (a++, b++, a + b);

在这个例子中,首先计算 a++a 的值变为 2。然后计算 b++b 的值变为 3。最后计算 a + b,结果为 5,并将其赋给 c

需要注意的是,逗号运算符的优先级是所有运算符中最低的,所以在使用时要注意结合性和优先级的问题,以避免出现意外的结果。

八、总结

1.新手朋友要区分开,数学中的算数运算和C语言的算数运算

2.学会自增运算符和自减运算符(这个理解可能是个难点)

大家一起加油!努力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值