C语言中关于操作符的理解

2023-12-22 22:36:33

本篇文章只会列出大家在生活中经常使用的操作符

?算术操作符

在算数操作符中常用的有,+,-,*,/,%?,我们重点讲一讲?/ (除)?和?% (模)

?"?/ "运算

#include <stdio.h>

int main() {
    int a=5/2;
    float b=5/2;
    float c=5.0/2;
    float d=5/2.0;
    float e=5.0/2.0;
    printf("%d\n",a);
    printf("%f\n",b);
    printf("%f\n",c);
    printf("%f\n",d);
    printf("%f\n",e);
    return 0;
}

?在这当中,我们可以看到输出a,b的时候,无论是用整型还是浮点型,输出的都是2,因为c语言在运算中,如果除号两端都是整数,则默认是整数除法,这个时候无论是以什么形式输出都是按照整数的显示来进行运算的,我们的解决方案可以是像c,d,e一样在除号的前后把任意一个或全部的数字变成小数,这样在运算的时候就会以浮点型来运算了。

?"%"运算

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

?在模运算中,我们可以看见,模运算求的是两个数相除后得到的余数,看似很简单,但在一些c语言问题当中有着大用处,例如要求每一位数字之和,我们就可以利用模运算来求出每一位的数字是多少,然后再进行除运算,以达到解决问题的方法。


位操作符

在位操作符中常用的有,&(与),|(或)

现在还没有合适的例子,等以后找到例子再来补充完整


单目操作符

单目操作符中常用的有,!,+,-,--,++,sizeof

单目操作符就是只有一个操作数的操作符

例如a++;

在这里++只有前面有一个操作数,使用++就是单目操作符

同理,双目操作符就是左右都有操作数的操作符

例如a+b;

+的左右都有操作数,使用+就是双目操作符

"!"运算

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

?在!运算中,0表示假,非0表示真,c语言中判断时,把真值默认为1,所以在这个程序中,输出的结果是0和1。

"-" ,"+" 运算

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

?通过上面的程序我们可以看出,跟a+b,a-b不同,这里的作用并不是相加或相减,在单目操作符里面"-","+"就是表示正负的意思

?"++","--"运算

#include <stdio.h>
int main() {
    int a=6;
    int b=++a;          //先++,后赋值
    int c=a++;          //先赋值,后++
    printf("a=%d\n",a);
    printf("b=%d\n",b);
    printf("c=%d\n",c);
    return 0;
}

?在这个程序中,我们可以看见a,b,c都分别变成了8,7,7

a=6a=6,b,c
b=6+1(直接加)a=7,b=7
c=7+1(这里的+1是运行完之后再+1,所以在这里c还是7)a=7,b=7c=7
输出时,由于c运算完了,所以这个时候c后面的++开始执行,执行后a=8

所以最后运行出来的结果是这个样子的?

"sizeof"运算

sizeof的理解icon-default.png?t=N7T8https://blog.csdn.net/lzcandhyandcg/article/details/134960729?spm=1001.2014.3001.5502


逻辑操作符

逻辑操作符中常用的有:"&&","||"

?"&&"运算

#include <stdio.h>
int main()
{
    int a, b=0;
    for (a = 1; a <= 100; a++)
    {
        if(a%5==0 && a%3==0)
        {
            printf("%d\t",a);
            b++;
            if(b%5==0)
                printf("\n");
        }
    }
    return 0;
}

?"&&"可以理解为并且的意思,在这个程序当中既能被5整除,也能被3整除的数就输出

?"||"运算

#include <stdio.h>
int main()
{
    int a, b=0;
    for (a = 1; a <= 100; a++)
    {
        if(a%5==0 || a%11==0)
        {
            printf("%d\t",a);
            b++;
            if(b%5==0)                //如果b%5等于0,则换行
                printf("\n");         //简单来说,就是每行只能有5个输出
        }
    }
    return 0;
}

"||"可以理解为或者的意思,在这个程序当中既能被5整除又能被11整除的数就输出?

?条件操作符(三目操作符)

条件操作符有:"? :"

这是一个条件操作符,具体用法如下

exp1 ? exp2 : exp3

如果exp1成立,则执行exp2

如果exp1不成立,则执行exp3

#include <stdio.h>
int main()
{
    int a=11;
    int b=3;
    int max=0;
    int min=0;
    max=a>b ? a : b;
    min=a>b ? b : a;
    printf("%d\n",max);
    printf("%d\n",min);
    return 0;
}

?在这个程序中,我们可以很清晰的看见条件操作符1的用法,跟if语句差不多,但比if语句更加简洁

文章来源:https://blog.csdn.net/lzcandhyandcg/article/details/135159413
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。