一、整形大小
1)short :至少为16位,16位可表示65536(十进制5位)个不同的值
2)int :至少与short一样长,int 一般与机器字长相等,如果是32位则可表示4294672296(十进制10位)个不同的值
3)long :至少为32位,至少与int 一样长
4)long long :至少64位,64位可表示18446744073709551616(十进制20位)个不同的值
二、关键字final
顾名思义,final 就是最终的、不改了、就这样子的意思
1)final 放在类前面 如果某个类在定义时,前面有修饰词final,则该类不能被继承 2)final 放在属性前面 属性声明时,如果前面有修饰词final关键字,则该属性值不能被更改,即此时该属性为常量 3)final放在方法前面 如果某个方法在定义时,前面有修饰词final,该方法可以被调用,不能重写
三、cosnt char *pCh; //意思是不能改变 pCh 所指向的值,但是可以改变pCh,也就是可以指向另一个值。
四、数的转换规则
当执行算术运算时,当操作数的类型不同就会发生转换。转换一般朝着浮点数精度更高长度更长的方向转换,整形数如果转换为 signed 不会丢失信息就转换为 signed ,否则转换为 unsigned (即使丢失信息)。
所以:
1,long double > double > float > 整形转换
2,整形转换,注意:unsigned int 不能与int做比较!!!切记!
当然存在以下小小Bug:
#include "iostream"
using namespace std;
int a[5];
#define TT (sizeof(a))
int main()
{
if(-1 <= TT)
cout<<"没有错啊!"<<endl;
else
cout<<"太离谱了!!!"<<endl;
int av;
cin>>av;
return 0;
}
输出为:太离谱了!!!
五、一些关键词
break:中断最近一层循环或 switch
static:1、在函数内部,表示该变量的值在各个调用间一直保持延续性
2、在函数这一级,表示该函数只对文件内部可见
extern:1、用于函数定义,表示全局可见(属于冗余的)
2、用于变量,表示它在其他地方定义
六、浮点数不能直接用 == 或 != 进行比较。会出错
以下代码不可行:会输出a=。。。。
#include"iostream"
using namespace std;
int main()
{
float a,b;
a = 12.98;
b = 0.98;
if(a-12 == b)
cout<<"everything thing is ok!"<<endl;
else
cout<<"a="<<a<<";a-12="<<a-12<<";b="<<b<<endl;
return 0;
}
以下代码可行:会输出 everything is ok
#include"iostream"
using namespace std;
#define EQUEL 0.000001
int main()
{
float a,b;
a = 12.98;
b = 0.98;
if(a-12 - b < EQUEL && a-12-b >-EQUE < EQUEL && a-12-b >-EQUEL)
cout<<"everything is ok!"<<endl;
else
cout<<"a="<<a<<";a-12="<<a-12<<";b="<<b<<endl;
return 0;
}
小知识:
常量的默认类型:编译器一般默认整形常量的保存类型为int 型如cout<<"year = "<<2013<<endl;这里的2013就被默认保存为int 型,如果想改变其保存类型,可通过增加后缀的方法,如2013u表示unsigned int 类型,2013L表示long类型,2013LL表示long long 类型。
七、不要在函数传参时使用 i++ 或 i-- 之类的
int main(itn arg,char *argv[])
{
f(1);
}
f(int i)
{
if(i == 9)
cout<<"done"<<endl;
else
f(i++); // 错误!传过去的参数是i,而不是 i+1 ,会在此处陷入递归无穷嵌套!
}
八、c++ 用getline 函数读取,输入缓冲区里的一行,遇到回车截止
#include<iostream>
using namespace std;
int main()
{
int t;cin>>t;
string a;
getline(cin,a);//读取输入的t,防止混乱
for(int i = 0;i<t;i++)
{
getline(cin,a);
cout<<"输入的字符串是:"<<a<<"\t输入字符串长度为"<<a.size()<<endl;
}
return 0;
}