C++常量的表示
		
				
				 
		
		
				    一、char型常量
		
		
				
						
    (一)单个字符:用单引号定界,如'a',C++转义字符如下:
        (01)\n        换行
        (02)\r        回车
        (03)\t        水平制表符
        (04)\v        垂直制表符
        (05)\b        退格
        (06)\a        振铃
        (07)\\        字符\
        (08)\'        字符'
        (09)\"        字符"
        (10)\...      1-3位八进制ASCII码代表的字符('\101')
        (11)\x.....   十六进制ASCII码代表的字符,位数约束不严格,在字符串表示某个字符时请慎
				用之
        (12)\uxxxx    四位16进制数字
          或\Uxxxxxxxx八位16进制数字实现通用符号(Universal character name)
          注意,必须是四位或八位,位数少或多都会出错。
		
		
				    
		
		
				    (二)字符串,用双引号定界,如"Code::Blocks",注意字符串的长度与占用内存的大小,因字符串结
				束标志为'\0',所以占用内存的大小比实际可用长度多1个字符。字符串结束标志不必特别指明,
				"abcdeabcde\0",特别指明反而会再多占用一个字节的内存空间。
#include <iostream>
#include <cstring>
    
using namespace std;
		
		
				
				 
		
				int main(int argc,char** argv) {
    char s[13]="abcdeabcde";
		
		
				    char s1[]="abcdeabcde";
		
		
				    char s2[]="abcdeabcde\0\0\0\0";
    cout<<sizeof(s)<<endl;
    cout<<strlen(s)<<endl;
		
		
				    cout<<sizeof(s1)<<endl;
    cout<<strlen(s1)<<endl;
		
		
				    cout<<sizeof(s2)<<endl;
    cout<<strlen(s2)<<endl;    
    return EXIT_SUCCESS;
}
//-----
结果为:
13
10
		
		
				11
		
		
				10
		
		
				15
		
		
				10
//-----
		
		
				    
		
		
				    (三)wchar_t型常量加前缀L,只能是大写L。如:
        wchar_t c=L'A';//这里的L可不加,看编译器是否认可
        wchar_t cc[]=L"mytest";//这里的L必须加
		
		
				例:
#include <iostream>
		
		
				using std::cout;
using std::endl;
		
		
				int main(int argc,char** argv) {
    wchar_t c=L'A';
    char cc='A';
    wchar_t cp[]=L"mytest";
    char ccp[]="mytest1";
    cout<<c<<endl;
    cout<<(char)c<<endl;
    cout<<cc<<endl;
    cout<<cp<<endl;
    cout<<ccp<<endl;
    return EXIT_SUCCESS;
}
//-----
65
A
A
0x22ff60
mytest1
//-----
		
		
				
				 
		
				    二、整型常量
		
		
				
						
 
		
		
				    (一)书写常量时,若不加任何修饰符,编译器通常会认为是int整型,但有时也会根据操作自动实现
				合适的转换。
#include <iostream>
#include <climits>
		
		
				using namespace std;
		
		
				int main(int argc,char** argv) {
    cout<<INT_MAX<<endl;
    cout<<SHRT_MAX<<endl;
    short x=32768;
    short k=32767+1;
    long long y=2147483647;
    long long d=INT_MAX+1;
    cout<<x<<endl;
    cout<<k<<endl;
    cout<<y<<endl;
    cout<<d<<endl;
    return EXIT_SUCCESS;
}
//-----
2147483647
32767
-32768
-32768
2147483647
-2147483648
//-----
		
		
				
				 
		
				    (二)无符号整型后缀是U(u),long型后缀是L(l),long long型后缀是LL(ll),L或LL或以与U组合。
		
		
				
				    三、浮点型常量
		
		
				
						
    默认是double类型,表示float类型常量加后缀F(f),表示long double类型常量加后缀L(l)。
		
		
				
				 
		
				    四、布尔型常量只有true和false,只认小写。当然可以用常数来表示,0为假,非零为真。
		
		 
		
				bool x=false;
bool y=1.234;
cout<<x<<endl;
cout.setf(ios_base::boolalpha);
cout<<y<<endl;
		
		
				//-----
0
true
//-----
		
		
				
				 
		
				例1:只有一个函数,但调用时参数不同,编译器尽量匹配
#include <iostream>
		
		
				using namespace std;
		
		
				void show(long);
		
		
				int main(int argc,char** argv) {
    show(123);
    show(123L);
    show(123UL);
}
		
		
				void show(long demo) {
    cout<<"long"<<endl;
}
//-----
long
long
long
//-----
		
		
				例2:有多个函数,编译器会认为是人为设计函数重载,将不再自动匹配
#include <iostream>
		
		
				using namespace std;
		
		
				void show(int);
void show(long);
void show(unsigned long);
		
		
				int main(int argc,char** argv) {
    show(123);
    show(123L);
    show(123UL);//改为show(123LL)试试如何?将会出错。
}
		
		
				void show(int demo) {
    cout<<"int"<<endl;
}
void show(long demo) {
    cout<<"long"<<endl;
}
void show(unsigned long demo) {
    cout<<"unsigned long"<<endl;
}
//-----
int
long
unsigned long
//-----