C++学习笔记(一)数据类型和表达式
CONTENT :
-
C++字符集,关键字和标识符
-
C++的基本数据类型
-
运算符与表达式
- 常用库函数
一、字符集,关键字和标识符
1、字符集 :
⑴大写、小写英文字母各26个;
⑵阿拉伯数字10个;
⑶运算符、标点符号及其他字符30个:
+ - * / % = ! & | ~ ^
< > ; : ? , . ‘ “ \
( ) [ ] { } # _ 空格
2、关键字(即保留字):
是编程语言具有专门用途的标识符
C++有48个标识符
编译器系统可能有其他关键字,
如VC++有_int8,_int26,_int32(其实是使用了tepedef)等
3、标识符 :
1 由大小写字母、数字、下划线组成 2 首字符必须是字母和下划线 3 有效长度取决于具体的C++编译系统
二、基本数据类型
A、变量
- 字符型:char
- 整形:char,short,int,long
- 实型,浮点型:float,double
- 空型:void
注:
- 非基本数据类型是用户定义的类型,包括数组、指针、结构、联合、枚举和类。
-
无符号整型数据在计算机内部用原码表示,即它的二进制数表示。
带符号整型数据在计算机内部用补码表示。
正数的补码形式就是它的原码;
负数的补码形式由其相应的正数的原码的各位逐位求反后在最低位加1而得到。
B、常量
就说一下前缀,后缀和杂七杂八的重点摘要
整型常量: 前缀:0(八进制)0X,0x(十六进制) 后缀:L,l(长整数) U,u(无符号整数) 实型常量: 后缀:F,f(单精度) D,d(双精度) L,l(长双精度) 字符型常量: 转义序列:以转义符“\”开始,后跟一个字符或一个整型常量来表示一个字符。 若转义符后跟一个整型常量,则必须是一个八进制或十六进制数, 其取值范围为0~255。八进制数可以以0开头,也可以不以0开头; 十六进制数必须以X或x开头。例如: '\032' '\x99' '\24' '\x56' '\0' 字符串常量: "a" 其存放值为0x6100,占两个字节 'a' 其存放值为0x61,占一个字节
三、运算符和表达式
a++和++a
a++和++a的区别为:加1操作不同、操作期间a值不同、过程对象不同。 一、加1操作不同 1、a++:a++先执行加1操作。 2、++a:++a后执行加1操作。 二、过程对象不同 1、a++:a++的过程对象为a参数变量。 2、++a:++a的过程对象为a++表达式。 三、操作期间a值不同 1、a++:a++在操作期间的a值为原值。 2、++a:++a在操作期间的a值为原值+1。 举个例子: 1、a=1;b=a++;运算后:b=1,a=2。 2、a=1;b=++a;运算后:b=2,a=2。 摘自:https://zhidao.baidu.com/question/1888025926411973268.html
优先级
正、负号 > “*”、“/”、“%” > 加、减
运算符的目数
一元(目)运算符:一个运算符只能对一个操作数进行操作。 例如,-5中的负号运算符 二元(目)运算符:一个运算符要求两个操作数。 例如,5*10中的运算符“*” 三元(目)运算符:一个运算符要求三个操作数。 例如,条件运算符“?:”是唯一的三元运算符
数据类型的转换
1、自动类型转换(隐式类型转换): 先把精度低的操作数转成与另一操作数相同精度的操作数后再做运算。(运算兼容) char→short→int→unsigned→long→unsigned long→double 2、强制类型转换(显式类型转换) (<type>)<表达式> 或 <type>(<表达式>)
关系表达式
关系表达式:用关系运算符将操作数连接起来的式子 关系成立时,结果为1;否则,结果为0 例如: (1<=3)+2 =3 a>b>c =0/1 (a>b)>c =0
逻辑运算符的优先级
逻辑非“!”>算术运算符
逻辑与“&&”和逻辑或“||”<关系运算符、算术运算符
逻辑位运算
~(按位取反):一元运算符 &(按位与):二元运算符 |(按位或):二元运算符 ^(按位异或):二元运算符
移位运算
<<(左移运算符):二元运算符 左移时,高位舍弃,低位补0 >>(右移运算符):二元运算符。 右移时,移出的低位被舍弃,而高位的补位: 对于无符号数,高位补0; 对于有符号数,高位补符号位(为正补0,为负补1)
四、常用库函数
标准库函数:由C++编译系统提供,包括常用的数学函数、字符串处理函数、输入/输出等
标准库函数的使用:编程时若要用这些库函数,只需包含相关库函数的头文件就可直接调用
常用数学库函数(math.h)
取绝对值函数 int abs(int x); //计算并且返回|x| double fabs(double x);//计算并且返回|x| long labs(long x); //计算并且返回|x| 三角函数 double sin(double x); //求sin(x),x为弧度值 double cos(double x); //求cos(x),x为弧度值 double tan(double x); //求tg(x),x为弧度值 double acos(double x);//求arccos(x),-1≤x≤1 double asin(double x);//求arcsin(x),-1≤x≤1 double atan(double x);//求arctan(x) 开平方函数 double sqrt(double x);//求 ,x≥0 指数及对数函数 double exp(double x); //求ex double pow(double x,double y); //求xy double log(double x); //求ln(x) double log10(double x); //求lg(x)
伪随机数函数
在stdlib.h头文件中声明,包括: 1、int rand(void);//产生一个0~0x7fff伪随机数 2、void srand(unsigned seed); //设置产生伪随机数的起点。若每次使用相同的seed,则将产生相同的伪随机数序列。 举例: 1、rand()%100 //产生一个0到99之间的伪随机数 2、rand()%9+1 //产生一个1到9之间的伪随机数
//涉足尚浅,如有不当,欢迎指出