2010/10/26

2010/10/26

关键字:基本内置类型、整型、浮点型、字面值常量、变量初始化

 

C++标准规定了每个算术类型的最小存储空间,但不阻止编译器使用更大的存储空间。

类型

含义

最小存储空间

一般存储空间

bool

布尔型

 

 

char

字符型

8

8

wchar_t

宽字符型

16

16

short

短整型

16

16

int

整型

16

32

long

长整型

32

32

float

单精度浮点型

6位有效数字

32

double

双精度浮点型

10位有效数字

64

long double

扩展精度浮点型

10位有效数字

96128

 

将超出取值范围的值赋给一个指定类型的对象时,采用取模的方式:

unsigned char uctemp1 = 336;        //uctemp1 = 336%256 = 80;

unsigned char uctemp2 = -336;       //uctemp2 = (-336+256+256)%256 = 176;

 

字面值常量有三种进制表示,十进制、八进制、十六进制:

int i1 = 20;        //十进制20

int i2 = 024;       //八进制20

int i3 = 0x14;      //十六进制20

 

字面值常量后缀:

long n1 = 1294L;    //推荐使用L

long n2 = 1294l;    //容易和混淆

 

unsigned long n3 = 1294ul;

unsigned long n4 = 1294UL;  //推荐

unsigned long n5 = 1294LU;

unsigned long n6 = 1294lu;

 

科学计数法:

3.14f   =   3.14e0f = 3.14E0F = 3.14f * 100

0.0314 = 3.14e-2f = 3.14E-2F = 3.14f * 10-2

 

在字符前加L标识宽字符字面值:

L’a’

 

同时输出宽字符型和字符型是不确定的,语法没有指定,取决于编译器。笔者在VC8下试了,编译出错。

cout<<"32" "232";   //ok

cout<<"32" L"232";  //vc8下编译不通过

 

左值:可以出现在赋值语句的左边或右边。

右值:只能出现在赋值语句的右边。

 

C++中有两种初始化形式:

int val1(1023);     //直接初始化,效率更高

int val2 = 1023;    //复制初始化

 

陷阱:

int val = val;      //VC8编译报警告,运行时错误

cin>>int val1;      //编译错误

 

double calc()

{

    return 0.0;

}

 

int main()

{

    double calc = calc();   //编译错误

    return 0;

}

个人推测赋值的操作步骤是:

1.  先分配左值空间,并将该空间命名为变量名.

2.  计算右值.

3.  执行赋值操作.

 

内置类型变量的初始化:

函数体外定义的一般变量都初始化为0,否则不进行自动初始化.也就是堆、栈中声明的变量不进行初始化,静态存储区等会初始化为0.

 

明天继续学习堆、栈、静态缓存区、常量缓存区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值