1. bool类型
bool类变量只能有0或1两种取值,使用true,false,0,1 初始化bool变量正常编译通过。使用数值类型量(如int,char,double,指针变量,字符串文字量)初始化bool变量编译器提出警告。运行时把非0数值类型量转化成1,把值为0的量转化成0.使用其他类型量(如一个结构体,某类的对象)初始化bool变量则编译器给出错误。
例子:
bool b; b=3; b=0.4; b='a'; b="avba"; b=""; b=&b; ---这几种情况b的值均为1
bool b; b=0; b=0.0; b=(void*)0; ---这几种情况b的值为0
在看一个例子:
bool b=7; cout<<b==7;---输出0,命题为假,因为b被初始化为1而不是7
bool b;cout<<b;--输出的值不确定,范围在0-255之间,因为sizeof(b)为1.
2. char数组
char chs[3]里面可以装三个字符,结尾的字符是什么都可以。如果不用cout或printf函数显示chs内容则一切无事,若需要使用它们则要在chs[2]里存放'/0',因为这两个函数会把从chs到第一次遇见0之前的内存段的内容以字符形式打印给你看。同理使用它们打印string时也要注意,若string变量中间有字符'/0',则cout和printf只能打印出0值以前的字符