C语言学习笔记——运算符(上)

简介: C语言学习笔记——运算符

3.1算术运算符

78b71b33851b70449e947de4d0c581b.png

5.1.1取余

#include<stdio.h>
void main() {
  //因为9和7都为整数,所以结果中整数1后面的小数都被截断,只保留1
  double a = 9 / 7;
  printf("a = %f\n", a);
  //若想要保留小数,则在参加运算的数字中,必须加上小数部分
  double b = 9.0 / 7;
  printf("b = %.15f\n", b);
  //9 % 7 指的是9对7取余(取模)
  int c = 9 % 7;
  printf("c = %d\n", c);
  //计算机中取模的公式为 a - a / b * b
  //-9 - (-9) / 7 * 7
  int d = -9 % 7;
  printf("d = %d\n", d);
  //9 - 9 / (-7) * (-7)
  int e = 9 % -7;
  printf("e = %d\n", e);
  //(-9) - (-9) / (-7) * (-7)
  int f = -9 % -7;
  printf("f = %d\n", f);
}

cba8bf7acda0420a9a278c429ad25e6e.png

计算机中取模的公式为 a - a / b * b

5.1.2 ++

#include<stdio.h>
void main() {
  int a = 7;
  int b = a++;//等价于b = a; a = a + 1;
  printf("a = %d  b = %d\n", a, b);
  int c = ++a;//等价于a = a + 1; c = a;
  printf("a = %d  c = %d\n", a, c);
  //++a和a++可以独立使用,但两者完全等价,都是a = a + 1;
  ++a;
  printf("a = %d\n", a);
  a++;
  printf("a = %d", a);
}

6160a8b36235476fbf0fe0da60bfa596.png

  1. b = a++;//等价于b = a; a = a + 1;
  2. c = ++a;//等价于a = a + 1; c = a;
  3. ++a和a++可以独立使用,但两者完全等价,都是a = a + 1

5.1.3练习

  1. 假如还有97天放假,请问还有多少个星期零几天?
#include<stdio.h>
void main() {
  //华氏温度转换摄氏温度的公式为:5 / 9 * (华氏温度 - 100),
  double Fahrenhite = 97;
  double Centigrade = 5.0 / 9 * (Fahrenhite - 100);
  printf("%f对应的摄氏温度为%f", Fahrenhite, Centigrade);
}


90ad843819fc445d88480c2117e2726c.png

3.2关系运算符

3.2.1介绍

  1. 关系运算符的结果为真是非0,为假是0
  2. 关系表达式经常用在if或循环中

3.2.2关系运算符表示

2a043d766406316dac8a8bf334eb5e5.png

3.2.3代码

3.2.3.1逻辑与运算符

#include<stdio.h>
void main() {
  //double score = 97;
  //double score = 79;
  double score = 59;
  if (score >= 80) {
    printf("优秀");
  }
  else if (score >= 60 && score < 80) {
    printf("良");
  }
  else {
    printf("不合格");
  }
}

71d0dd25ffc643fbad77d2983d48d103.png

#include<stdio.h>
void main() {
  int a = 9, b = 7;
  if (b < 8 && a++ > 9) {// a++ > 9判断中先进行a > 9的判断,再进行a++
    printf("ok1\n");
  }
  printf("a = %d\n", a);
  int c = 9, d = 7;
  if (d < 8 && ++c > 9) {// ++c > 9判断中先进行c > 9的判断,再进行++c
    printf("ok2\n");
  }printf("c = %d\n", c);
  int e = 9, f = 7;
  if (f < 6 && ++e > 9) {// 如果在进行&&操作时,第一个判断的结果是false,则之后的条件就不再进行判断
    printf("ok3\n");
  }printf("e = %d", e);
}

47c4d2b5ea8a460894833dd9c32079ce.png

3.2.3.2逻辑或运算

#include<stdio.h>
void main() {
  int a = 9, b = 7;
  if (a > 7 || b++ > 7) {//在进行逻辑与时候,第一个判断的结果是true,则之后的条件不再进行判断
    printf("ok\n");
  }
  printf("b = %d\n", b);
}

390e298bc8244b06820b5ea093cac51c.png

3.2.3.3逻辑非运算

#include<stdio.h>
void main() {
  //int score = 97;
  int score = 79;
  int result = score > 80;
  if (result) {
    printf("ok1\n");
  }
  if (!result) {//当result取反为真时
    printf("ok2");
  }
}


0255f70edef3419ca2928efec1125cc1.png

3.3赋值运算符

3.3.1介绍

赋值运算符就是将某个运算后的值,赋给指定的变量

3.3.2赋值运算符表示

45ebef689961b1506762e06b36deaf8.jpg

3.3.3代码

#include<stdio.h>
void main() {
  //交换a与b的值
  int a = 9;
  int b = 7;
  int temp = a;//设置一个临时变量保存a的值
  a = b;//将b赋值给a
  b = temp;//将temp赋值给b,即a原来的值复制给b,完成交换
  printf("a = %d\tb = %d", a, b);
  //+=示例
  int c = 97;
  c += a;
  printf("c = %d", c);
}

76557fdb31d1454aa419b2388eebf0db.png

  1. 运算顺序从右往左
  2. 赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值
  3. 在运算时,如果被赋值的变量精度较小,则有可能会导致精度损失


相关文章
|
1月前
|
Java 编译器 C语言
【JavaSE】运算符详解及与C语言中的区别
【JavaSE】运算符详解及与C语言中的区别
64 0
|
1月前
|
存储 程序员 C语言
C语言强制类型转换运算符
C语言强制类型转换运算符
16 1
|
19天前
|
C语言
C语言中的条件运算符和条件表达式详解
C语言中的条件运算符和条件表达式详解
35 0
|
4天前
|
IDE 开发工具 C语言
C primer plus 学习笔记 第2章 C语言概述
C primer plus 学习笔记 第2章 C语言概述
|
4天前
|
存储 Unix 编译器
C primer plus 学习笔记 第1章 初识C语言
C primer plus 学习笔记 第1章 初识C语言
|
12天前
|
C语言
C语言算数运算符和算数表达式详解
C语言算数运算符和算数表达式详解
12 0
|
19天前
|
C语言
C语言中的运算符和表达式
C语言中的运算符和表达式
19 0
|
19天前
|
存储 算法 C语言
深入理解C语言中的间接寻址运算符docx
深入理解C语言中的间接寻址运算符docx
16 0
|
20天前
|
编译器 数据处理 C语言
C语言运算符的深入探究
C语言运算符的深入探究
17 0
|
20天前
|
存储 安全 C语言
C语言强制类型转换运算符
C语言强制类型转换运算符
18 0