《C语言学习》-第二弹--运算符与表达式

一、赋值运算符

所谓赋值,就是给一个“东西”数据。这个“东西”数据就是我们上篇文章讲的变量

运算符

描述

示例

=

简单的赋值运算符

C = A 就是A的值赋给 C

+=

加且赋值运算符

C += A 就是 C = C + A

-=

减且赋值运算符

C -= A 就是 C = C - A

*=

乘且赋值运算符

C *= A 就是 C = C * A

/=

除且赋值运算符

C /= A 就是 C = C / A

%=

求余数且赋值运算符

C %= A 就是 C = C % A

注意:赋值运算符支持的是C语言的基本数据类型,包括char、int和double,字符串(字符数组)不能使用赋值运算符。

示例:

#include <stdio.h>

int main()
{
    int A,C;
    scanf("%d",&A);
    C=A;
    printf("C=%d\n",C);
    C+=A;
    printf("C=%d",C);
    return 0;
}

二、算术运算符

顾名思义,就是进行数学运算的符号

假设int A=11,int B=2

运算符

描述

示例

+

两个数相加

A+B=13

-

两个数相减

A-B=9

*

两个数相乘

A*B=22

/

分子除以分母

A/B=5

%

余数运算符,整除后的余数

A%B=1

++

自增运算符,整数值增加 1

A++=12

--

自减运算符,整数值减少 1

A--=10

注意:

因为A和B是int类型数据,所以“/”运算后得到的也是int类型。小数部分直接省略。

示例:

#include <stdio.h>

int main()
{
    int A=11,B=2,C;
    C=A+B;
    printf("C=%d",C);
    return 0;
}

A++和++A的区别:

A的值是一样的,都会加一;但是C的值不一样A++是先赋值再加一,++A是先加一再赋值

#include <stdio.h>

int main()
{
    int A=11,B=2,C;
    C=A++;
    printf("C=%d,A=%d\n",C,A);
    A=11;//保证A的初始值都是11
    C=++A;
    printf("C=%d,A=%d",C,A);
    return 0;
}

三、关系运算符

在C语言里,要判断很多变量的条件或者语句,会用到关系运算符,以此来决定程序的流程

运算符

关系

实际表示

<

小于

<

<=

小于等于

>

大于

>

>=

大于等于

=

等于

=

!=

不等于

注意:

“=”是赋值,“==”才是判断两个数是否相等,不能混用。

#include <stdio.h>

int main()
{
    int A=11,B=2,C;
    if(C==A)
    printf("C is equal to A");
    else
        printf("C is not equal to A");
    return 0;
}

C语言没有“之间”、“中间”、“之内”或“在某范围内”这种表示范围的的关系运算符,例如年龄在25-30岁之间,只能表达为:年龄大于等于25岁并且 年龄小于等于30岁

#include <stdio.h>

int main()
{
    int CYCLY=20;
    if(CYCLY<=25&&CYCLY>=30)
        printf("The valid age for this is between 25 and 30 years old");
    else
        printf("The age for this is not between 25 and 30 years old");
    return 0;
}

四、逻辑运算符(条件运算符)

说白了就是条件判断语句,就是上文中我们用到的if else 语句。

if

if(里面内容非0就会执行if{}下面的代码块。“非0就是逻辑成立的意思”

如果里面内容不成立(等于0)就会跳过执行后面语句

如果if语句后面没有大括号,那么后面第一个分号之前的内容就是if成立执行的语句

else

if条件语句不成立的情况下执行的语句

嵌套的if else语句

常见错误:

a、忘了大括号了

b、if后面加分号

c、错误使用==和= if(a=b)

d、认真看待每一个警告

e、大括号里面的代码块记得缩进(代码风格很重要)


五、三目运算符

是由一个问号和一个冒号组成。语法组成是

表达式1?表达式2:表达式3;

怎么理解?

先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果;如果表达式1的结果如果为假,执行表达式3,运算式的结果是表达式3的结果。

#include <stdio.h>

int main()
{
    int a,b,c;
    a=2;
    b=1;
    c=(a>b)?a:b;
//    if(a>b)
//        c=a;
//    else
//        c=b;
    printf("c=%d",c);
}
//第八行代码内容等于注释的代码内容

可以简单使用,知道怎么用就行,但是复杂逻辑不推荐用,因为过于复杂理解

比如判断是否是闰年

 int year;
  year=(year%100==0)?(year%400==0?1:0):(year%4==0?1:0);

六、sizeof 运算符

它既是运算符也是关键字,用来计算变量(或数据类型)在当前系统中占用内存的字节数。

sizeof(数据类型);//数据类型必须用括号括住。
sizeof(变量名);//变量也可以用括号括住。

示例:(验证)不同数据类型的所占内存1.h

#include <stdio.h>

int main()
{
    int a;
    char b;
    short c;
    long d;
    float e;
    double f;
    printf("a's occupied memory is %d\n",sizeof (a));
    printf("b's occupied memory is %d\n",sizeof (b));
    printf("c's occupied memory is %d\n",sizeof (c));
    printf("d's occupied memory is %d\n",sizeof (d));
    printf("e's occupied memory is %d\n",sizeof (e));
    printf("f's occupied memory is %d\n",sizeof (f));
}

七、运算符优先级与求值顺序

所有的关系运算符的优先级要比算术运算的低,但是比赋值运算的高

判断是否相等的==和!=的优先级比其他的低,而连续的关系运算是从左到右进行

简答来说:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岂有此李呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值