C++每日一课(六)

char 类型
char类型是专门用来存储字符而设计的。
存储数字对计算机来说比较好理解,要把一个字母字符存储则需要编程语言提供对字符与数字的对应关系来解决,所以可以把char也看做是一种特殊的整型
一般来说系统支持的字符不会超过128个,因而用一个字节就可以表示所有的符号了,虽然char最常用来处理字符,但也可以把它用做比short更小的整型来看


最常见的符号集ASCII
字符集中的字符用数值编码表示
比如 字符A对对应的编码是65,字符B对应的编码是66
C++支持的宽字符类型则可以存储更多的值 wchar_t类型

/*
作者:xiesheng
时间:2017-06-24
版本:v1.0
说明:C++中的整型
*/


#include <iostream>


int main() {


	using namespace std;
	char ch;
	cout << "请输入一个字符:" << endl;
	cin >> ch;
	cout << "你输入了字符 " << ch << endl;


	system("pause");
	return 0;
}



这个时候如果输入的了一A,程序中输出的也是A而不是它对应的编码65,但实际上存储在ch中的值确实是65
这里是由于cin、cout完成了这其间的转换操作,是否需要转换cin、cout都会智能的根据变量的类型来进行判断

/*
作者:xiesheng
时间:2017-06-24
版本:v1.0
说明:C++中的整型
*/


#include <iostream>


int main() {


	using namespace std;
	char ch = 'A';
	int i = 0;
	cout << "------A-Z的ASCII码表------" << endl;
	for (; ch <= 'Z'; ch++) {
		cout << ch << "\t" << (int)ch << "\t";
		if (++i % 2 == 0)
			cout << endl;
	}
		
	cout<<endl;


	system("pause");
	return 0;
}



char字面值
在C++中,书写字符常量的方式有多种。
对于常规的字符来说直接把字符用单引号括起来,这种表示法就是表示字符对应的数字编码
有些字符是无法通过键盘输入的,这个时候就需要使用到转义序列
\a:振铃
\n:换行
\t:水平制表符
\v:垂直制表符
\b:退格
\r:回车
\\:反斜杠本身
\':单引号
\":双引号


通用字符名
它的用户类似于转义序列,以\u或者\U打头,\u后面是8个十六进制位,\U后面则是16个十六进制位,这些位表示的是ISO 10646码点


signed char 、 unsigned char
与int不同的是,char在默认情况下既不是没有符号的,也不是有符号的,是否有符号是由C++的实现来决定的。
C++中也直支持显示的指定是signed或unsigned


如果把char用作数值的话,unsigned char 与 signed char之间的差异会非常重要。unsigned char 的范围是0~255,signed char的范围是-128~127


wchar_t
对于wchar_t类型 cin和cout无法处理,因为这两个对象处理的是char流
如果要处理wchar_t则需要使用wcin和wcout


char16_t char32_t
与wchar_t一样都是底层类型,它们两者都是无符号的,一个16位,一个是32位


bool类型
bool类型的值是true和false


bool is_ready = true;
bool is_active = false;


另外,任何的数字值或指针值都可以隐式转换为bool值,任何的非0值都转换为true,而0则转为false




const限定符
处理符号常量的方法
1.可以使用#define预处理器来指定 比如:#define ZERO 0
2.可以通过const限定符来指定 const int MONTHS = 12;  这样定义后就可以在程序中直接使用MONTHS来表示12了
使用const修饰过的变量在定义后就不可以改变其值了
在定义这样的变量的时候常见的做法是首字母大写,以便可以区分出常量和变量,另一种方式是变量名全部大写这个就于#define中定义是一样的


创建常的通用格式
const 类型 常量名 = 常量值;
注意:在声明常量的时候一定要同时进行初始化,如果不初始化则声明出的常量的值是个不确定的值并且后面也不可以进行修改



猜你喜欢

转载自blog.csdn.net/advent86/article/details/73695097