目录
计算机简介
进制
1位(b)即1个二进制位(值为0或1)
1字节(B)=8b
一般以字节为最小的完整存储单元
编码/字符集
计算符号
符号 | 含义 |
---|---|
数值运算符 | 含义 |
双目运算符 | |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除,整数除整数为整除 |
% | 求余 |
单目运算符 | ++(加加)与–(减减),这里的x为一个变量 |
++x | 先自增,再运算 |
x++ | 先运算,再自增 |
- -x | 先自减,再运算 |
x- - | 先运算,再自减 |
逻辑运算符 | 含义 |
双目运算符 | |
== | 相等 |
!= | 不等 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
单目运算符 | |
! | 布尔运算,是(非0)变否(0),否(0)变是(1) |
|| 双竖线 | 或,有一个不为0,值为1 |
&& | 与(并且),有一个值为0,值为0 |
位运算符 | 含义 |
双目运算符 | |
& | 位与 |
| 单竖线 | 位或 |
^ | 按位异或 |
>> | 向右移位 |
<< | 向左移位 |
单目运算符 | |
~ 波浪线 | 按位取反 |
- 负号 | 取补/按位取反+1,(正负符号变化,绝对值不变) |
改变优先级符号 | |
() | 括号里的算式,先自己算好 |
赋值(部分伴随逻辑)运算符 | 含义 |
双目运算符 | |
= | 赋值 |
+= | 加后赋值,a+=b 相当于 a=a+(b),下面类似 |
-= | 减后赋值 |
*= | 乘后赋值 |
/= | 除后赋值 |
%= | 余后赋值 |
>>= | 右移后赋值 |
<<= | 左移后赋值 |
&= | 位与后赋值 |
|= | 位或后赋值 |
^= | 按位异或后赋值 |
转义符号 | |
\ | 与后面的字符一起组成一个特殊符号 |
\n | 回车 |
\t | 制表符(tab) |
等等 | 还有其他各种各样的转义符 |
注意:
1./与\分清楚
2.位移命令不改变原数,如b=a>>2,a b都是int,这条命令不会改变a的值,而是将移位后的值传给b
符号里有的符号
- 优先级有相同的,有不同的,不同语言的符号与优先级略有不同(但常用的就这些),可自己查询。建议不要写太复杂的算式,并适时用()明确优先级
- 有的向右结合,有的向左。比如a=b=0,从左向右;a||b,从右向左
权限
用处:分配权限
所哟语言都适用基本规则
面向对象(涉及到跨代码块访问,有明确的权限 关键词)主要应用与面向对象编程,如C++,java
基本规则(作用范围)
使用方法:在内的可以访问在本代码块的和更外层代码块的,但不能跨越代码块访问
局部变量与全局变量
- 局部变量为该函数 或 复合语句内部的变量,全局变量为最外部的变量
- 当有局部变量与全局变量 名字相同时,局部变量有效,全局变量暂时无效
动态变量(auto)与静态变量(static)
在最外部的变量为静态变量
- 动态变量:注明auto 或 不注明auto与static,如(auto) int i,即定义i
- 动态变量仅能在局部使用,一离开就回收存储单元
- 静态变量:需注明static,未赋值则默认为0,如static int i=1,i的值即为1
- 静态变量一经定义,直至整个程序结束时回收存储单元
- 离开静态变量的有效范围后,暂时失效,待回到有效范围后激活,数值与之前一致,不再重新定义
面向对象
使用方法:在变量或函数定义时,在前面写上权限(不写则为默认权限)
被访问者的权限 和 访问者的位置 决定是否能正确访问
一般有三种权限,权限公开到私有
- public(公共):
- protected(受保护):
- 默认-default(java的默认权限)
- private(私有):
函数(方法)
定义:返回值 函数名(参数表){语句}
有时不需要返回值,可以不写值
函数名有多种写法
- java:驼峰写法(后面的单词的首字母大写,其他字母小写),如setName,isFull
- C++:C风格,在单词之间加下划线_
参数表内 :”类型 变量名“为1组(不带引号),若有多组,用逗号,分隔
需要直接返回的用return即可
变量
定义:数据类型 变量名(=值)
变量名不可与该语言的关键词相同
基础数据类型
中文 | 数据类型 | 存储(B) |
---|---|---|
字符 | char | 1(C/C++)或2(java) |
整型 | int | i |
浮点数(双精度) | double | 8 |
布尔值 | boolean | 1/8(只有1b) |
浮点数(单精度) | float | 4 |
还有 类:string的本质是一个类,但一般默认引入
类变量(面向对象)
class 类名{
成员变量(实例变量)
构造函数(构造器)
其他函数
类(静态)变量
类(静态)函数
}
- 这些不一定按照这个顺序写下来
- 类名:采用驼峰写法
- 构造器(constructor)、访问器&修改器(getter&setter) 是特殊的函数
- 构造器:不需要返回值(可以说没有返回值,但实际上返回了地址),用于类实例的创建
- 访问器&修改器:在成员变量不方便被直接访问时,用特别的访问函数
- 访问器:get变量名;修改器:set变量名
- 类变量(静态变量)、类函数(静态函数)有static修饰,使用 类名.名字 访问
除成员变量,其他的均为函数,可以重载(函数名相同,参数不同)
数组[]
什么类型都可以有数组
用法:数据类型[] 变量名
语句/语句块
每条语句(除判断语句)后面都要有英文分号;
语句块用{}括起来,里面可以有多条语句
判断(逻辑)语句
一般在 if或循环 的()内,不需要;
用逻辑符号与 变量/数值 组成
在下面的分支语句与循环语句都要用到
比如a==b,a||b等
中断语句
break:直接跳出分支或循环
continue:在循环中不再执行下面的函数体,直接循环
循环语句
for(初始化;循环条件;语句3){循环体}
while(循环条件){循环体}
do{循环体}while(循环条件)
注意:1.for与while一般可以互相改写
2.他们的差别仅在于语句3存在时使用continue的差别,
在改写后的while中用continue会跳过语句3,而for不会
3.while与do while的差别是进入do while时不会判断循环条件
分支语句
if()-else
if( ){ }
else if( ){ }
else{ }
从上到下符合哪个执行哪个后面的代码
switch()-case-default-break
switch(i)
case 常量1:{ };
case 常量2:{ };
…(可为多个)
default:{ };
}
从上到下i等于哪个常量执行哪个后面的代码,若无符合的则执行default后面的,default也没有就过了