[C][符号]详细讲解

目录

  • 1.算术操作符
  • 2.接续符和转义符 \
    • 1.续行符使用
    • 2.转义
  • 3.单引号和双引号
  • 4.逻辑运算符
  • 5.位运算符
  • 6.移位操作符
  • 7.++ --操作
  • 8.条件操作符
  • 9.逗号表达式
  • 10.操作符的属性


1.算术操作符

  • 算术操作符+ - * / %
  • 除了%操作符以外,其他的几个操作符可以作用于整数和浮点数
  • 对于/操作符如果两个操作数都为整数,执行整数除法,而只要有浮点数执行的就是浮点数除法
    • 即:如果浮点型中要计算小数,那么算式中必要要有一个小数
    • 如:sum += 1.0 / i;
  • %操作符的两个操作数必须为整数,返回的是整除之后的余数

2.接续符和转义符 \

1.续行符使用

  • 虽然直接换行也可以,但是\有自述性,告诉使用者要换行了
if(a == 1 &&\b == 2 &&\c == 3)
{}

2.转义

  • 字面转特殊 n -> \n
  • 特殊转字面 " -> \"
  • 回车和换行是一个东西吗?
    • 回车\r 光标回到当前行的最开始
    • 换行\n 光标移动至下一行
转义字符释义
\?在书写连续多个问号时使用,防止它们被解析成三字母词
\'用于表示字符常量'
\"用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制数字,如:\130 X
\xdddd表示2个十六进制数字,如:\x30 0

3.单引号和双引号

  • 单引号是字符,双引号是字符串
  • C99标准规定'a'叫做整形字符常量,被看作int型
    • 存入char c = 'a'中,sizeof(c) = 1是因为发生了截断

4.逻辑运算符

  • &&(逻辑与):同真则真

  • ||(逻辑或):至少有一个为真,结果则为真

  • 短路

    • &&一个条件不满足,已经不需要再看后续的条件的情况
      • &&如果已经遇到了一个假,则不会执行后续语句
    • ||一个条件已满足,已经不需要再看后续的条件的情况
      • ||如果已经遇到了一个真,则不会执行后续语句
  • 短路设计的一个有趣用法

flag && func(); // if 语句
flag || func(); // if else
  • !(逻辑非):True为0 False为1

5.位运算符

  • 注意操作数必须是整数
  • &按位与
  • |按位或
    • 任何数字和0|保持不变
    • 任何数字和1|,对应比特位被设置为1
  • ^按位异或
    • 相同为0,相异为1
    • 任何数据和0异或,都是他本身
    • 异或运算支持交换律和结合律
    • 用异或交换两个变量的值的好处?
      • 异或没有进位 --> 绝对不会发生溢出问题
  • ~按位取反

6.移位操作符

  • 注意移位操作符的操作数只能是整数
  • 左移、右移和原反补没关系
    • 只有当数据被写入或读取时,才和原反补有关系
  • 负数左右移完全不可预测
  • <<(左移):最高位丢弃,最低为补0
  • >>(右移):
    • 无符号数:最低位丢弃,最高位补0 -> [逻辑右移]
    • 有符号数:最低位丢弃,最高位补符号位 -> [算数右移] (和内部保存什么数据无关)
  • 如何理解丢弃?
    • <<或者>>都是计算,都要在CPU中进行,可是参与移动的变量,是在内存中的
      • 所以需要先把数据移动到CPU内寄存器中,再进行移动
    • 在实际移动的过程中,是在寄存器中进行的,即大小固定的单位内
      • 那么,左移右移一定会有位置跑到"外边"的情况
  • 总结
    • 左移:无脑补0
    • 右移:先判定是 算术右移 还是 逻辑右移
      • 判定依据看自身类型,和变量的内容无关
      • 判定了算数,还是逻辑,才能决定最高位补什么

7.++ --操作

  • 后置++/--:先使用,再++/--
  • 前置++/--:先++/--,后使用

8.条件操作符

  • exp1 ? exp2 : exp3

    • exp1成立,exp2执行,整个表达式的结果是:exp2的结果
    • exp1不成立,exp3执行,整个表达式的结果是:exp3的结果
  • 条件表达式通常用于赋值语句之中

max = a > b ? a : b;
  • 例子:b = a > 5 ? 1 : -1;
    • 翻译:a > 5吗?如果是,将1赋值给b,如果不是,将-1赋值给b

9.逗号表达式

  • 逗号表达式,就是用逗号隔开的多个表达式:exp1, exp2, exp3, ..., expN
    • 从左向右依次执行
    • 整个表达式的结果是最后一个表达式的结果
  • 逗号运算符的优先级别在所有运算符中最低
  • 例:(3+5,6+8)的值是14

10.操作符的属性

  • 操作符的优先级
  • 操作符的结合性
  • 是否控制求值顺序
    • 两个相邻的操作符先执行哪个?
    • 取决于他们的优先级,如果两者的优先级相同,取决于他们的结合性
      请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/18621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第31课-循环动画

【WEB前端2024】开源智体世界&#xff1a;乔布斯3D纪念馆-第31课-循环动画 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&am…

科学技术创新杂志科学技术创新杂志社科学技术创新编辑部2024年第10期目录

科技创新 单桩穿越岩溶发育地层力学特征与溶洞处置措施研究 刘飞; 1-7《科学技术创新》投稿&#xff1a;cnqikantg126.com 基于多目标优化的中低压配电网电力规划研究 向星山;杨承俊;张寒月; 8-11 激光雷达测绘技术在工程测绘中的应用研究 张军伟;闫宏昌; 12-15 …

Python爬虫技术深度解析与实战案例

一、引言 随着互联网的快速发展&#xff0c;网络数据已成为人们获取信息、进行研究的重要资源。Python作为一种功能强大且易于学习的编程语言&#xff0c;在爬虫领域有着广泛的应用。本文将详细介绍Python爬虫技术的基本原理、核心组件&#xff0c;并通过一个实战案例展示Pyth…

LeetCode516:最长回文子序列

题目描述 给你一个字符串 s &#xff0c;找出其中最长的回文子序列&#xff0c;并返回该序列的长度。 子序列定义为&#xff1a;不改变剩余字符顺序的情况下&#xff0c;删除某些字符或者不删除任何字符形成的一个序列。 代码 /*dp[i][j]&#xff1a;[i,j]的回文子序列长度为d…

泰迪智能科技数据分析工程师项目班(线上班)课程安排介绍

泰迪智能科技数据分析工程师项目班旨在帮助学员掌握数据分析的基本理论和实践技能&#xff0c;通过理论教学和实践项目结合&#xff0c;全面提升学员的数据分析能力。 数据分析工程师项目班课程特色&#xff1a; 1.课程内容前沿&#xff0c;实用性强 课程…

51 html网页

上节内容的网页是hello world的字符串&#xff0c;但实际上网页应该是html格式的这种超文本标记语言&#xff0c;这一节完善一下网页的各种格式和内容 分文件 实际服务器中&#xff0c;网页的界面应该单独放一个文件&#xff0c;服务器从文件里读取网页的内容 先创建一个wroo…

QT学习备份

2023年1月2日09:00:32 1.信号/槽编辑器 发送者&#xff1a;控件 信号&#xff1a;是控件发出的信号 接受者&#xff1a;包含控件的容器 槽&#xff1a;程序上用slot标识的方法 2.Q_OBJECT宏 只有继承了QObject类的类&#xff0c;才具有信号槽的能力。所以&#xff0c;为了使用…

uniapp实现蓝牙自动连接并获取心电图(代码篇)

我们最近的项目是需要写一个app和公司设备通过蓝牙连接&#xff0c;并且获取到心电图&#xff0c;这次是实现自动的&#xff0c;用户在第一次的时候需要点击连接蓝牙实现自动连接&#xff0c;后续更是不需要点击直接获取心电图&#xff0c;直接上代码&#xff0c;供大家参考&am…

【管理咨询宝藏118】集团公司人力资源共享服务中心建设方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏118】集团公司人力资源共享服务中心建设方案 【格式】PDF版本 【关键词】人力资源、共享服务、顶级咨询 【核心观点】 - 本项目立足集团公司的人…

学生信息管理系统(静态版)

系统的主界面 系统的操作指令 结构体的创建 目录 1、学生信息的输入 2、学生信息的添加 3、学生信息的删除 4、学生信息的查找&#xff0c;找到并显示 *判断查找函数3和4和5共用 5、学生信息的修改 6、显示学生的信息 7、学生成绩的排序,并打印(代码中有快排和冒…

智慧冶金:TSINGSEE青犀AI+视频技术助力打造高效、安全的生产环境

一、建设背景 冶金行业因其特殊的生产环境和工艺要求&#xff0c;对安全生产、环境保护以及质量监控等方面有着极高的要求。因此&#xff0c;将视频智能监控技术引入冶金行业&#xff0c;不仅有助于提升生产效率&#xff0c;更能有效保障生产安全&#xff0c;降低事故风险。 …

Python + adb 实现打电话功能

前言 其实很多年前写过一篇python打电话的功能&#xff0c;链接如下&#xff1a; Python twilio 实现打电话和发短信功能_自动发短信代码-CSDN博客 今天由于工作需要&#xff0c;又用python写了个关于打电话的小工具&#xff0c;主要是通过ADB方式实现的 实现过程 1.先利用…

计算机图形学入门02:线性代数基础

1.向量&#xff08;Vetors&#xff09; 向量表示一个方向&#xff0c;还能表示长度&#xff08;向量的摸&#xff09;。一般使用单位向量表示方向。 向量加减&#xff1a;平行四边形法则、三角形法则。比卡尔坐标系描述向量&#xff0c;坐标直接相加。 1.1向量点乘&#xff08;…

图片怎么批量重命名从1到50?这3个方法一键改名

图片怎么批量重命名从1到50&#xff1f;图片批量重命名从1到50的过程不仅提高了我们处理大量图片文件的效率&#xff0c;还大大简化了命名过程&#xff0c;让我们能更加有条理地管理和存储图片。通过使用各种专业的工具和方法&#xff0c;我们可以轻松实现图片文件的自动化命名…

光纤网络发展(光缆主动监测系统解决方案)

随着光缆网络规模的迅速扩大&#xff0c;如何提高网络运营效益就显得尤为重要。一方面需要及时掌握网络的运行状况&#xff0c;在发生劣化或故障时&#xff0c;能够准确定位&#xff0c;缩短排障历时&#xff1b;同时&#xff0c;一条光缆从设计、施工到维护&#xff0c;积累了…

聊聊异常处理及try-catch-finally块的作用

异常处理&#xff08;Exceptional Handling&#xff09;&#xff0c;又称为错误处理&#xff0c;是编程语言或计算机硬件中用于处理软件或信息系统中出现的异常状况的一种机制。这些异常状况通常指的是超出程序正常执行流程的某些特殊条件。异常处理提供了处理程序运行时出现的…

服务器上创建搭建gitlab

一、下载与安装 在主目录操作~ 1.使用wget下载 wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.1-ce.0.el7.x86_64.rpm 可以在开源软件镜像站选择合适的版本&#xff0c;版本不同页面菜单会稍有差异&#xff0c;此次选…

新人学习笔记之(函数1)

一、函数的概念 1.在JS里面&#xff0c;可能会定义非常多的相同代码或者功能相似的代码&#xff0c;这些代码可能需要大量重复使用 2.虽然for循环语句也能实现一些简单的重复操作&#xff0c;但是比较有局限性&#xff0c;此时我们就可以使用JS中的函数 3.函数&#xff1a;就是…

MongoDB CRUD操作:投影Project详解

MongoDB CRUD操作&#xff1a;投影Project详解 文章目录 MongoDB CRUD操作&#xff1a;投影Project详解返回文档的全部字段返回指定的字段和_id字段不输出_id字段指定排除的字段返回内嵌文档中的指定字段禁止内嵌文档中的特定字段数组中内嵌文档的投影聚合表达式的投影字段 默认…

拉取代码报错: SSL certificate problem: self signed certificate

问题描述&#xff1a; 使用SmartGit工具clone项目时&#xff0c;弹出框提示信息为“XXXX&#xff0c;SSL certificate problem: self signed certificate” 问题分析&#xff1a; 提示信息为SSL认证失败&#xff0c;可以关闭SSL的认证 解决方案&#xff1a; 在windows的命…