一些会让看着头大但又必须明白的东西
匈牙利表示法前缀的类型及其说明
前缀 类型 说明
ch char 字符
b BOOL 布尔值
n(I) int 整数
w WORD 16位无符号数
l LONG 32位有符号数
dw DWORD 32位无符号数
lpsz LPTSTR 指向字符串的32位指针
h Handle 窗口对象句柄
================================
C++中的转义字符
字符形式 功能
/n 换行
/t 横向跳格(即跳到下一个输出区)
/v 竖向跳格
/b 退格
/r 回车
/f 走纸换页
/a 响铃
// 反斜杠字符
/' 单引号字符
/" 双引号字符
/? 问号
/ddd 1-3位八进制数所代表的字符
/xhh 1-2位十六进制数所代表的字符
=================================
-----------------------------------------------------
1基本的算术运算符
+ - * / %(取余)
-----------------------------------------------------
2 自增、自减运算符
++是自增运算符, --自减运算符
用户只能将这类操作符应用于变量而不能应用于常量.
valuel=valuel+1;
可使用
++valuel;
或
valuel++;
-----------------------------------------------------
3 关系运算符
运算符 名字
= = 等于
! = 不等于
< 小于
< = 小于等于
> 大于
> = 大于等于
-----------------------------------------------------
4 逻辑运算符
逻辑非:!
逻辑与:&&
逻辑或:||
-----------------------------------------------------
5 位运算符
A)、逻辑位运算符
(1)单目逻辑位运算符:
~ (按位求反)
作用是将各个二进制位由1变0,由0变1.
(2)双目逻辑运算符:优先级: 【 &高于^高于| 】
& (按位与) 两个都为1时结果为1.
^ (按位异或) 两个不同则结果为1,否则为0.
| (按位或) 两个其中有一个为1则结果为1.
B)、移位运算符
均有一个正整数n作为右操作数,将左操作数的每一个二进制位左移或右移n位,空缺的位设置为0或1.对于无符号整数或有符号整数,如果符号位为0(即为正数),空缺位设置为0;如果符号位为1(即为负数),空缺位是设置为0还是设置为1,要取决于所用的计算机系统.
移位运算符有两个,<<(左移)、>>(右移).两个 都是双目运算符.
例. 指出下面表达式的功能.
(p&0377)|(k&0xff)<<8
将整数p的低字节作为作为结果的低字节,k的低字节作为结果的高字节拼成一个新的整数.
----------------------------------------------------
6 求字节数运算符
C++提供了一个有用的运算符sizeof,它是一个单目运算符,用于计算表达式或数据类型的字节数,其运算结果与不同的编译器和机器相关.当编写用于进行文件输入/输出操作或给动态列表分配内存的程序时,用户将发现,如能知道程序给这些特定变量所分配内存的大小将会很方便. 例如3-1:
当我们进行算术运算时,如果运算结果超出变量所能表达的数据范围时,就会发生溢出.而利用sizeof运算符计算变量所占的字节数,也就是说,可以算出变量的数据范围,从而可以避免可能出现的错误. sizeof(char) 的值是 1
-----------------------------------------------------
7 逗号运算符
C++语言提供一种特殊的运算符--逗号运算符.用它将两个表达式连接超来.如:3+5,6+8
称为逗号表达式,又称为"顺序求值运算符".逗号表达式的一般形式为:表达式1,表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2.整个逗号表达式的值是表达式2的值.例如,上面的逗号表达 式"3+5,6+8"的值是14.又如,逗号表达式a=3*5,a*4对此表达式的求解.首先计算表达式1a=3*5,值为15,在计算表式2 ,15*4,值为60.
一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如(a=3*5,a*4),a+5.先计算出a的值等于15,再进 行 a*4的运算得60(但a值未变,仍为15), 再进行a+5得20,即整个表达式的值为20.
逗号表达式的一般形式可以扩展为:表达式1,表达式2,表达式3.......表达式n 它的值为表达式n的值.
------------------------------------------------------------------
8 可以利用强制类型转换运算符将一个表达式转换成所需类型.
其一般形式为:(类型名)(表达式)
(double)a (将a转换成double类型)
(int)(x+y) (将x+y的值转换成整型)
(float)(5%3) (将5%3的值转换成float型)
注意,表达式应该用括号括起来.如果写成(int)x+y 则只将x转换成整型,然后与y 相加.
需要说明的是在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化.例如:(int)x (不要写成 int(x)).如果x原定为float型,进行强制类型运算后得到一个int型的中间变量,它的值等于x的整数部分,而x 的类型不 变(仍为float型)
---------------------------------------------------------------------------------------------------------------------