变量是什么? 是用于放数据的东西。 变量命名首字不可以是 数字
常量: const string str = "helloWorld!";
*: 只有常量才可以赋值给常量
整型 一个字节占8位
byte (8) 0 -- 255
sbyte (8) -127 -- 0 -- 128
short (16) 0 -- 65535 2^16 = 65536
uShort (16) -32767 -- 0 -- 32768
int (32) 42,9496,7296
uInt (32)
long (64位)
uLong (64位) 无符号
浮点型
float (32) 没有符号的说法
double (64) 也有 64位,128位的
一般用于多媒体中,最大特点:不精确 。 财务数据坚决不可用。
为什么浮点数是不精确的呢?
1. 因为浮点数是无限的集合
2. 而32位是有限的集合
3. 现在用一个有限的集合来表示一个无限的数据,所以自然会造成不精确。
定点型(货币类型)
decimal (64) 有限的集合 ,但可以结合单位,如千,万,亿之类的,组合来表示数据
补充:
Object/object, String/string, Double/double, Float/float 等是等价的
浮点型往往是导弹发射偏差的主要原因。
布尔类型
bool b = true/flase; 只有2个数据,没有别的。
char ch = 'A'; 1. 只能是一个字符,用单引号括住 2.可以是中文 3.是个Unicode字符 4.字符不可以是空的 char ch=''(wrong);
不可有tab键等,可以用转义字符/
/t 制表符
/n/r 回车换行符
// 反斜杠
字符串类型
string 字符数组
补充:
long lNumb = 123L;
ulong ulNumber = 123uL;
float fNumb = 12.4F;
double dNumb = 12.4D;
decimal dec = 12.4M;
Object类型
是所有对象的基类
值类型 : 内存中放的是一个值
引用类型: 内存中放的是一个指针地址
Null 表示内存中不指向任何东西
CLR 不回收 值类型
string str = "123" + 5; // 1235
编译器会自动调用ToString()方法
运算符: ?
Checked :检查是否溢出 如果溢出就抛出异常
UnChecked :不检查是否溢出 如果溢出被截断,相当于环绕
as : 转换,相当于显示转换
is :bool b = true is int;
(a>b)? a:b 三目运算符
& 与 255 & Y = y
| 或 255 | Y = 255
^ 异或 255 ^ Y = 255 - Y
>> 左移位 相当于除以2 (因Cup中有相应的指令,所以运行速度更快)
<< 右移位 相当于乘以2
void 表示一种类型,只是表示该函数不返回任何值,不可用于什么变量用
表达式,总返回一个值