Chinaunix首页 | 论坛 | 博客
  • 博客访问: 74186
  • 博文数量: 21
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 241
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-07 14:05
文章分类

全部博文(21)

文章存档

2011年(1)

2008年(20)

我的朋友

分类:

2008-03-10 21:45:37

    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
#include
   
using namespace std;
 
int main(int argc,char** argv) {
    char s[13]="abcdeabcde";
    char s1[]="abcdeabcde";
    char s2[]="abcdeabcde\0\0\0\0";
    cout<    cout<
    cout<    cout<
    cout<    cout<    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
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<    cout<<(char)c<    cout<    cout<    cout<    return EXIT_SUCCESS;
}
//-----
65
A
A
0x22ff60
mytest1
//-----
 
    二、整型常量

 
    (一)书写常量时,若不加任何修饰符,编译器通常会认为是int整型,但有时也会根据操作自动实现合适的转换。
#include
#include
using namespace std;
int main(int argc,char** argv) {
    cout<    cout<    short x=32768;
    short k=32767+1;
    long long y=2147483647;
    long long d=INT_MAX+1;
    cout<    cout<    cout<    cout<    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<cout.setf(ios_base::boolalpha);
cout<
//-----
0
true
//-----
 
例1:只有一个函数,但调用时参数不同,编译器尽量匹配
#include
using namespace std;
void show(long);
int main(int argc,char** argv) {
    show(123);
    show(123L);
    show(123UL);
}
void show(long demo) {
    cout<<"long"<}
//-----
long
long
long
//-----
例2:有多个函数,编译器会认为是人为设计函数重载,将不再自动匹配
#include
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"<}
void show(long demo) {
    cout<<"long"<}
void show(unsigned long demo) {
    cout<<"unsigned long"<}
//-----
int
long
unsigned long
//-----
阅读(1436) | 评论(0) | 转发(0) |
0

上一篇:C++与Java基本数据类型比较

下一篇:#pragma

给主人留下些什么吧!~~