1. 不可见字符与可见字符
- 不可见字符(控制字符):ASCII有128个字符,其中ASCII值从0~31和127为不可见字符(控制字符):经常用一个转义字符后跟一个专门的字符来表示,如\n(换行),\a(响铃);
- 可见字符:直接用”单引号对括起来的单个字符,如’a’,’x’,’$’等,有的可见字符会与语法冲突,所以也用转义字符来表示,如\”,\’,\等;
2.字符型的输出不是整数,而是该整数所代表的ASCII码字符
int a = 65;
char b = 65;
cout<<a<<" "<<b<<endl; //输出结果为:65 A
举两个例子,代码如下:
(1).
(2).
分析以上两个小程序,第一个,’a’是可见字符,其ASCII码值为97,所以在计算b时,即为33+97,所以b为130,而打印a时候则会打印其数值对应的ASCII字符“!”;同理,第二题中,’\a’是不可见字符,即“响铃bell”字符,其ASCII值为7,所以相加后得b为40。
注意区别’a’和’\a’
3.string:引用一篇关于C++ string应用的总结:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html
string类型的变量相比较于char类型的变量,前者在字符串的操作上更为方便,它们有以下的区别:
(1).赋值,char类型变量有以下①、②种赋值方式,分别是用指针在声明时候赋值:
- char* s1 = “Hello”;
- char a[20]; strcpy(a,s1);
以下这③和④这两种赋值方式对于char类型变量来说是错误的:
- char a[20] = “Hello”;(错)
- char a[20]; char a1[20] = a;(错)
而string类型的变量的赋值是可以直接通过“=”,所以“+=、-+、*=、/=”都是可以用来赋值的;
(2).连接,char类型用strcat连接,而string用+=;
4.布尔型:
(1).用任何非0的整数给bool变量赋值时,其值都是1,例如:
bool a = 3; bool b = 1;
bool c= a+b; //c==1,不是3+1,而是1+1等于2,为真,所以c==1
bool d = a-b; //d==0,不是3-1,而是1-1等于0,为假,所以d==0
(2).bool型默认输出形式整数1和0,如果要输出true和false则要用输出控制符boolalpha
有:
bool a = 0; cout<<boolalpha<<a<<endl; //输出结果为false