单目运算符

数据类型、常量、变量、printf、scanf和运算符

随声附和 提交于 2020-04-03 10:32:55
数据类型 常量 变量 printf函数介绍 scanf函数介绍 运算符 数据类型 数据类型是指数据在内存中存储的方式。 C语言中有5大数据类型:基本类型、构造类型、指针类型、空类型、定义类型。 C语言中常见的数据类型: 各种数据类型在内存中占用的空间大小:(单位:字节)(1 Byte = 8 bit) 16位编译器 32位编译器 64位编译器 char 1 1 1 Int 2 4 4 Float 4 4 4 Double 8 8 8 Short 2 2 2 Long 4 4 8 Long long 8 8 8 Void *(指针变量) 2 4 8 各种数据的表示范围: 常量 常量就是在内存中固定的数据,不可改变其内容。 常见分类: 整型常量 a) 十进制常量,和自然界十进制表示法一致 b) 二进制常量,以0b(0B)开头,例如:0b1100 c) 八进制常量,以0开头,例如:045 d) 十六进制常量,以0x开头,例如:0x123 实型常量 a) 单精度常量,小数后面加f表示单精度常量。 例如:3.14f b) 双精度常量,和自然界小数表示方法一致。 例如:3.1415926 3.8e5(或3.8E5 相当于3.8 x 10 5 ) 字符型常量 用单引号括起来的单个字符表示。 a) 普通字符:例如: ‘A’ ‘b’ ‘$’等等 b) 转义字符:例如:’\n’ ‘\t’ ‘%%’

C语言运算符优先级说明

佐手、 提交于 2020-04-02 09:22:58
下面按优先级从高到低的顺序总结一下各种运算符,每一条所列的各运算符具有相同的优先 级,对于同一优先级的多个运算符按什么顺序计算也有说明,双目运算符就简单地用“左结 合”或“右结合”来说明了。和指针有关的运算符* & ->也在这里列出来了,以后再详细解释。 1 、标识符、常量、字符串和用()括号套起来的表达式是组成表达式的最基本单元,在运算中做 操作数,优先级最高。 2、后缀运算符,包括数组取下标[]、函数调用()、结构体取成员.、指向结构体的指针取成员- >、后缀自增++、后缀自减--。如果一个操作数后面有多个后缀,按照离操作数从近到远的顺序 (也就是从左到右)依次运算,比如a.name++,先算a.name,再++,这里的.name应该看成a的 一个后缀,而不是把. 看成双目运算符。 3、单目运算符,包括前缀自增++、前缀自减--、 sizeof、类型转换()、取地址运算&、指针间接 寻址*、正号+、负号-、按位取反~、逻辑非! 。如果一个操作数前面有多个前缀,按照离操作数 从近到远的顺序(也就是从右到左)依次运算,比如!~a,先算~a,再求!。 4、乘*、除/、模%运算符。这三个运算符是左结合的。 5、加+、减-运算符。左结合。 6、移位运算符<<和>>。左结合。 7、关系运算符< > <= >=。左结合。 8、相等性运算符==和!=。左结合。 9、按位与&。左结合。 10

运算符优先级 详细列表

我们两清 提交于 2020-03-31 16:12:01
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -> 成员选择(指针) 对象指针->成员名 2 - 负号运算符 -表达式 右到左 单目运算符 (类型) 强制类型转换 (数据类型)表达式 ++ 自增运算符 ++变量名/变量名++ 单目运算符 -- 自减运算符 --变量名/变量名-- 单目运算符 * 取值运算符 *指针变量 单目运算符 & 取地址运算符 &变量名 单目运算符 ! 逻辑非运算符 !表达式 单目运算符 ~ 按位取反运算符 ~表达式 单目运算符 sizeof 长度运算符 sizeof(表达式) 3 / 除 表达式/表达式 左到右 双目运算符 * 乘 表达式*表达式 双目运算符 % 余数(取模) 整型表达式/整型表达式 双目运算符 4 + 加 表达式+表达式 左到右 双目运算符 - 减 表达式-表达式 双目运算符 5 << 左移 变量<<表达式 左到右 双目运算符 >> 右移 变量>>表达式 双目运算符 6 > 大于 表达式>表达式 左到右 双目运算符 >= 大于等于 表达式>=表达式 双目运算符 < 小于 表达式<表达式 双目运算符 <= 小于等于 表达式<=表达式 双目运算符 7 == 等于 表达式==表达式 左到右 双目运算符 !=

C++学习笔记45:多态性

安稳与你 提交于 2020-03-30 21:23:37
运算符重载 运算符是针对新类型数据的实际需要,对原有运算符进行适当的改造 1.比如使复数类的对象可以使用+运算符实现加法; 2.比如使时钟类的对象可以用++运算符实现时间增加1秒; 注意:可以重载为类的非静态成员函数、非成员函数 重载为类成员的运算符函数定义形式: 函数类型 operator 运算符(形参) {   ... } //参数个数=原操作数个数减1,(后置++,--除外) 如何重载运算符为非成员函数? 有些运算符不能重载为成员函数,例如二元运算符的左操作数不是对象,或者不能由我们重载运算符的对象; 备注:如果在重载运算符函数中要操作某类对象的私有成员,可以将此函数声明为该类的友元; 后置单目运算符的重载函数,形参列表中要增加一个int,但不必写形参名: 例如: 表达式 oprd B 等同于operator B(oprd,0) 虚函数: 通过虚函数实现运行时多态性,实现动态绑定; 虚函数必须是非静态的成员函数(属于对象的,而不是类的),虚函数经过派生后就可以实现运行过程中的多态; 注释: 一般的成员函数可以是虚函数; 构造函数不能是虚函数; 析构函数可以是虚函数; 虚函数一般不声明为内联函数,因为内联函数的处理是静态的; 虚析构函数 可能通过基类指针删除派生类的对象;如果需要通过基类指针调用对象的析构函数,就需要让基类的析构函数成为虚函数; 虚表与动态绑定 虚表

SQLServer基础(七)

亡梦爱人 提交于 2020-03-18 11:07:50
第八章、子查询 8.1、子查询入门 子查询包含两种类型:一种,只返回一个单值,相当于一个拥有返回值的函数 另一种,返回一列值得子查询,相当于一个临时的数据表。 8.1.1、单值子查询 与普通select没区别,唯一限制是子查询返回值必须只有一行记录,只有一个列:标量子查询。 select 1 as F1,2,(select min(FYearPublished) from T_book),(select max(FYearPublished) from T_book) as F4 8.1.2、列值子查询 可以返回一个多行多列的结果集:表子查询。 select T_Reader.FName,t2.FYearPublished,t2.FName from T_Reader,(select * from T_BOOK where FYearpublished<1800) t2 8.2、select列表中的标量子查询 标量子查询完全可以返回随当前查询记录而变化的值。 Attention:这里的子查询与前边讲的有所不同,前面的子查询没有依赖于外部查询中的字段,也就是可以直接单独执行,但是这里依赖于外部查询中的字段,这里子查询无法单独执行。 select FId,FName, ( select max(FyearPublished) from T_Book where T_Book

第3章 JavaScript脚本语言

天涯浪子 提交于 2020-03-17 11:30:23
第 3章 JavaScript脚本语言 知识点: (1) 了解什么是 JavaScript 以及 JavaScript 的主要特点 (2) 掌握 JavaScript 语言基础 (3) 掌握 JavaScript 的流程控制语句 (4) 掌握 JavaScript 中函数的应用 (5) 掌握 JavaScriptc 常用对象的应用 (6) 掌握 DOM 技术 本章概述: JavaScript 是 Web 页面中一种比较流行的脚本语言,它由客户端浏览器解释执行,可以应用在 JSP 、 PHP 、 ASP 等网站中。随着 Ajax 进入 Web 开发的主流市场, JavaScript 已经被推到了舞台的中心。因此,掌握并能熟练应用 JavaScript ,对于网站开发人员来说非常重要。本章将详细介绍 JavaScript 的基本语法 、常用对象及 DOM 技术。 3.1 JavaScript 概述 3.1.1 什么是 JavaScript JavaScript 是一种基于对象和事件驱动并具有安全性的解释型脚本语言,在 Web 应用中得到了非常广泛的应用。它不需要进行编译,而是直接嵌入在 HTTP 页面中,把静态页面转变成支持用户交互并响应应用事件的动态页面。在 Java Web 程序中,经常应用 JavaScript 进行数据验证、控制浏览器以及生成时钟、日历和时间戳文档等。 2.1

运算符先后级

ぃ、小莉子 提交于 2020-03-08 16:57:26
口诀:单目乘除为关系,逻辑三目后赋值。 单目:单目运算符+ –(负数) ++ -- 等 乘除:算数单目运算符* / % + - 为:位移单目运算符<< >> 关系:关系单目运算符> < >= <= == != 逻辑:逻辑单目运算符&& || & | ^ 三目:三目单目运算符A > B ? X : Y 后:无意义,仅仅为了凑字数 赋值:赋值= 来源: 51CTO 作者: loserone 链接: https://blog.51cto.com/11585002/2476385

学习java 第三天

橙三吉。 提交于 2020-03-07 17:36:58
运算符分类 编辑 运算符指明对操作数的运算方式。组成表达式的Java 操作符 有很多种。运算符按照其要求的操作数数目来分,可以有 单目运算符 、 双目运算 符和 三目运算符 ,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有 算术运算符 、 赋值运算符 、 关系运算符 、 逻辑运算符 、 位运算符 和其他运算符。 [1] 算术 单目:+(取正)-(取负) ++(自增1) - -(自减1) 双目:+ - * / %(取余) 三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个 运算符 包括一个 关系运算符 (可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个 表达式 或者是值或者是对象。 关系 等于符号 : ==,不等于符号 : != ,大于符号 : >, 小于符号 : <,大于等于符号 : >= ,小于等于符号 : <= 。 位与逻辑 位 运算符  与(&)、非(~)、或(|)、异或(^) &:双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为1时结果为1,否则结 果为0.如:1010&1101,转为二进制:10001001101&1111110010比较结果为:1000000转为十进制: 64所以1010&1101=64; | :当两边 操作数

【SEU&SE】编译原理 - 词法分析器

一曲冷凌霜 提交于 2020-03-05 08:04:17
README 该源码仅供参考,严禁直接抄袭! 源码如下 // // main.cpp // LexicalAnalyzer // // Created by 胡昱 on 2020/1/1. // Copyright © 2020年 胡昱. All rights reserved. // # include <iostream> # include <fstream> # include <vector> # include <string> using namespace std ; /*****************全局变量*****************/ /*****************关键字表*****************/ const static string reserveWords [ ] = { "main" , "if" , "else" , "while" , "do" , "for" , "int" , "double" , "float" , "char" , "long" , "short" , "enum" , "static" , "bool" , "void" , "switch" , "case" , "break" , "continue" , "signed" , "unsigned" , "return" , "defalut"

Java运算符优先级

别来无恙 提交于 2020-03-04 04:22:24
Java 语言中大部分运算符是从左向右结合即从左向右计算的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。 乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。运算符有不同的优先级,所谓 优先级就是在表达式运算中的运算顺序。 一般而言,单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。 Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先执行。下表列出了所有的运算符的优先级以及结合性。 使用优先级为 1 的小括号可以改变其他运算符的优先级 ,即如果需要将具有较低优先级的运算符先运算,则可以使用小括号将该运算符和操作符括起来。例如下面的表达式: ( x - y ) * z / 3 在这个表达式中先进行括号内的减法运算,再将结果与 z 相乘,最后将积除以 3 得出结果。整个表达式的顺序按照从左向右执行,比较容易理解。 再来看一个复杂的表达式,如下所示。 -- y || ++ x && ++ z ; 这个表达式中包含了算术运算符和逻辑运算符。根据上表中列出的优先级,可以确定它的执行顺序如下: ①