[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 …

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…

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

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

智慧冶金: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;积累了…

服务器上创建搭建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;此次选…

10.时间片调度

一、简介 时间片调度主要针对优先级相同的任务&#xff0c;当多个任务的优先级相同时&#xff0c;任务调度器会在每 一次系统时钟节拍到的时候切换任务&#xff0c;也就是说 CPU 轮流运行优先级相同的任务&#xff0c;每个任务运 行的时间就是一个系统时钟节拍。 二、相关实…

Percona Toolkit 神器全攻略(实用类)

Percona Toolkit 神器全攻略&#xff08;实用类&#xff09; Percona Toolkit 神器全攻略系列共八篇&#xff0c;前文回顾&#xff1a; 前文回顾Percona Toolkit 神器全攻略 全文约定&#xff1a;$为命令提示符、greatsql>为GreatSQL数据库提示符。在后续阅读中&#xff0c;…

【吊打面试官系列】Java高并发篇 - 怎么唤醒一个阻塞的线程?

大家好&#xff0c;我是锋哥。今天分享关于 【怎么唤醒一个阻塞的线程&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 怎么唤醒一个阻塞的线程&#xff1f; 如果线程是因为调用了 wait()、sleep()或者 join()方法而导致的阻塞&#xff0c;可以中断线程&#xf…

2024年618网购节各大电商超级红包二维码集合

一年一度的电商618网购节又要来了&#xff0c;下面收集了淘宝/京东/拼多多的618红包二维码&#xff0c;手机扫描或识别即可每天领红包&#xff0c;可参考好物分享中的商品下单&#xff1a; 淘宝618超级红包&#xff1a;即日起至2024.6.10&#xff0c;每天可领一次 京东618无门…

vue+springboot实现echarts数据图统计

①vue项目修改配置 安装依赖&#xff1a; npm i echarts -S 修改路由index.js&#xff1a; import Vue from vue import VueRouter from vue-router import Manager from ../views/Manager.vue // 解决导航栏或者底部导航tabBar中的vue-router在3.0版本以上频繁点击菜单报错…

「光储充放」一体充电站-一文读懂光储充放充电站

“光储充放”一体充电站作为一种储能充电的新形式渐渐走进人们的生活&#xff0c;全国很多地区都开始陆续投放运营“光储充放”一体充电站&#xff0c;今天的这篇文章&#xff0c;就带大家全面了解“光储充放”这一新型充电站。 头图来源 | 视觉中国 01 政策背景 早在2020年…

集合的交集、并集和差集运算

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 集合最常用的操作就是进行交集、并集、差集和对称差集运算。进行交集运算时使用“&”符号&#xff0c;进行并集运算时使用“&#xff5c;”符号&…

基于振弦采集仪的岩土工程振弦监测技术研究与应用

基于振弦采集仪的岩土工程振弦监测技术研究与应用 岩土工程振弦监测技术是一种基于振弦采集仪的测试方法&#xff0c;用于对岩土体的力学特性进行监测和分析。振弦采集仪是一种先进的测试设备&#xff0c;能够准确测量岩土体中的振动响应&#xff0c;并通过分析振动信号来获取…