4.运算符与表达式

变量 与 变量或常量 可以进行运算 组成表达式。

一、算术运算符

运算符 含义
+
-
*
/
% 取余
++ 自增
-- 自减

1.基本算术运算

前5个基本含义和数学上相同
不同的是:
整型除以整型结果还是整型,小数部分直接去掉
5/2的结果是2,不是2.5,也不是3
想要得到小数部分就要用 浮点型
5.0/2.0 的结果才是2.5

#include <stdio.h>
int main() {
    int a = 100;
    int b = 6;
    printf("a + b == %d\n", a+b );
    printf("a - b == %d\n", a-b );
    printf("a * b == %d\n", a*b );
    printf("a / b == %d\n", a/b );
    printf("a %% b == %d\n", a%b );//输出%要用%%
    return 0;
}

2.自增自减运算

自增与自减同理,所以这里只说自增。

变量的自增运算就是变量本身+1
单独使用时这4条语句是一样的:
++a;a++;a=a+1;a+=1;(a为变量)
混和其他运算符一起使用时有区别:
前置:++a 先自增再运算
后置:a++先运算再自增
例如:
c=++a;等价于a++; c=a; //自增;赋值;
c=a++;等价于c=a; a++; //赋值;自增;

#include <stdio.h>

int main() {
    int a = 100;
    int b = 6;
    int c=0;

    printf("自增自减(单独作为语句使用)\n");
    printf("a == %d  b == %d\n", a,b );

    a++;
    b--;
    printf("a == %d  b == %d\n", a,b );

    printf("\n\n");

    printf("自增自减(嵌套使用)\n");
    printf("a == %d\n", a );
    c=a++;//先赋值a的值给c,a再自增,所以c的是自增前的a
    printf("c == %d,a==%d\n", c,a);
    c=++a;//a先自增,再赋值a的值给c,所以c的是自增后的a
    printf("c == %d,a==%d\n", c,a);

    return 0;
}

二、赋值运算符

运算符 含义 举例
= 赋值 i=5;表示 设置变量i的值为5
+= 相加后赋值 i+=5;等同于i=i+5
-= 相减后赋值 i-=5;等同于i=i-5
*= 相乘后赋值 i*=5;等同于i=i*5
/= 相除后赋值 i/=5;等同于i=i/5
%= 取余后赋值 i%=5;等同于i=i%5

三、关系运算符

关系运算符的运算结果只有两种 1(代表真)和 0(代表假)

运算符 含义 举例
== 是否相等 5==5的结果为1
!= 是否不等 5!=5的结果为0
> 是否大于 6>5的结果为1
< 是否小于 6<5的结果为0
>= 是否大于或等于 4>=5的结果为0
<= 是否小于或等于 4<=5的结果为1

注意区分===,分别是 赋值 和 比较是否相等。


#include<stdio.h>
int main() {
    int a=0,b=999,c;
    printf("%d\n",4>5);//0
    printf("%d\n",6>5);//1

    printf("%d\n",a>=0);//1
    printf("%d\n",a!=b);//1
    c= (6>5);
    printf("%d\n",c);//1
    c= (b==999);
    printf("%d\n",c);//1

    return 0;
}

四、逻辑运算符

运算符 含义 举例
| | :有一个为真,运算结果就为真 1||0的值为1
&& :同时为真,运算结果才为真 1&&0的值为0
! :真变成假,假变成真 !0的值为1
#include<stdio.h>
int main() {
    /* 或且非 随便挑一个意思理解
     和数学上集合的 并集,交集,补集 差不多。
     和物理上: “或” 像 开关并联,“且” 像开关串联,也差不多。
    */
    int a=0,b=999,c;
    //判断b是否大于5 或者 a<10 有一个满足 结果就是1 , 一个都不满足 结果就是0
    printf("%d\n",a>5||a<10);//1

    //判断b是否在0到100
    printf("%d\n",b>0&&b<1000);//1

    //判断b是否为0,1,2
    printf("%d\n",b==0||b==1||b==2);//0

    return 0;
}

六、位运算符

数值在计算机中是以二进制存储的。
如 42对应二进制为00101010,其中的每一个1或0 叫做一个

运算符 含义 示例
<< 左移位:将数字的二进制每一个位左移 00101010<<1的值为01010100
>> 右移位:将数字的二进制每一个位右移 00101010<<1的值为00010101
& :两个位为1时,结果位才为1 00101010 & 10101010的值为00101010
| :有一个位为1,结果位就为1 0110 丨1100的值为1110
~ 取反:1变成0,0变成1 ^100的值为011
^ 异或:相同为1,不同为0 0011^1110的值为0010
#include<stdio.h>
int main() {
    int a=0,b=999,c;
    //判断b是否大于5 或者 a<10 有一个满足 结果就是1 , 一个都不满足 结果就是0
    printf("%d\n",a>5||a<10);//1

    //判断b是否在0到100
    printf("%d\n",b>0&&b<1000);//1

    //判断b是否为0,1,2
    printf("%d\n",b==0||b==1||b==2);//0

    return 0;
}

六、运算符嵌套

就是几个运算符组合成一个语句。
就像小学混合四则运算一样。
那么他们运算就有先后顺序
a=b!=4实际上是a = ( b!=4 )也就是先判断b!=4然后再赋值给a
而不是先赋值再判断。

image.png

不想记就尽量把语句拆开用。

下一篇:C语言程序的基本结构

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容