[C++]数据类型

数据类型

 

用一个字节表示整数,范围为-128~127;用两个字节表示整数,范围为-32768~ 32767。一般用四个字节表示整数。(举例)

 

 

常量与变量

常量:在程序运行过程中,其值一直保持不变的量为常量。

常量也区分不同的类型:30,40 为整型,30.0,40.0为实型,编辑器只是根据其表面形式来判断其类型。

 

变量:在程序运行过程中,其值可以改变的量为变量。

变量在程序的执行中能够赋值,发生变化。变量有一个名字,并在使用之前要说明其类型,一经说明,就在内存中占据与其类型相应的存储单元。

#include<iostream.h>

#define  PRICE   30  //常量,在程序中保持不变

void main(void)

{    int  num, total;  //定义变量,在内存中开辟区间

      num=10;        //变量赋值,10为常量

     total=num*PRICE;

     cout<<“total=“<<total; //输出结果

}

C++中有多种数据类型,均有常量与变量之分,各占不同的内存空间,正确定义与使用数据是编写程序的基本前提。

 

变量名的命名方法:

变量名、数组名、函数名…称为标识符。

标识符只能由字母、数字、下划线这三种字符组成,且第一个字符必须为字母或下划线,长度不大于247个字符,大小写不通用。(关键字不能作为标识符)。

关键字即是VC++的语法要求中使用的字。

如 int  if   while 等。

正确的标识符:INT,   sum ,  de12,   SUM等。变量必须使用前定义,以分配空间。

举例说明

abc   English    2xy    x-y    if    Else   b(3)    ‘def’   Chine_bb    b3y   AbsFloat   float

一般变量都是用匈牙利命名法命名的。

int nCount;

char  chChoice;

整型数据

整型常量:

常量是根据其表面形式来判定,整型量即是没有小数点的整数,范围:-231~(231-1) ,有三种形式:

1)十进制(默认方式)43   1345   87654

2)八进制     以0开头               043, 056, 011

3)十六进制  以0x开头      0x12      0xa3     0x34       0xdf(举例说明)

#include<iostream.h>

void main(void)

{

int int10,int8,int16;  //定义3个整型变量

int10=10;//默认为十进制

int8=010;//八进制

int16=0x10;//十六进制

cout<<"int10="<<int10<<endl;

cout<<"int8="<<int8<<endl;

cout<<"int16="<<int16<<endl;

}

输出

int10=10

int8=8

int16=16

 

整型变量:

分为有符号型与无符号型。

有符号型:

     short 在内存中占两个字节,范围为-215~(215-1)

int 在内存中占四个字节,范围为-231~(231-1)

long在内存中占四个字节,范围为-2-31~231-1

无符号型:最高位不表示符号位

unsigned  short 在内存中占两个字节,范围为0~216-1

unsigned int  在内存中占四个字节,范围为0~232-1

unsigned  long在内存中占四个字节,范围为0~232-1

 

1)整型常量亦有长短之分,常量中无unsigned型,但一个非负的整型常量可以赋给unsigned型的变量。

2)若一个常量定义为长整型数,则在其后加l或L进行区分。

如:32l    32L    564L等,内存为其分配四个字节存储。

一个数在内存中为

 

当这个数为有符号数时,是-1;为无符号数时,是232-1

内存中的数是以补码的形式存放的。

 

不同类型的整型数据间的赋值归根到底就是一条:按存储单元中的存储形式直接传送。

#include <iostream.h>

void main()

{ unsigned short a;

  short int b= -1;

  a=b;

  cout<<"a="<<a<<endl;

}

结果:65535

 

实型数据

实型数又称浮点数,有两种表示方式:

1)十进制形式:  23.0    24.5     3.56789

2)指数形式:   23E1    145e-1    356789e1   e前有数字,后面必须是整数。

实型变量分单精度 float 和双精度 double 两种形式:

float:占四个字节,提供7~8位有效数字。

double: 占八个字节,提供15~16位有效数字。

#include<iostream.h>

void main(void)

{float   a,  b;

double   c,  d;

a=0.01;

b=3.45678e-2;

c=3.45678e-2;

d=9.7654e-5;

cout<<"a="<<a<<'\t'<<"b="<<b<<endl;

cout<<"c="<<c<<'\t'<<"d="<<d<<endl;

}

a=0.01  b=0.0345678

c=0.0345678     d=9.7654e-005

Press any key to continue

 

实数是既有整数又有小数的数。

实数可以表示成:N=S×RJ

S  称为尾数,尾数决定有效数字,即数字的精度。

J   表示指数(阶码)。

R  是基数,可取2,4,8,16等,对具体机器而言,基数取好后,就不能再变了。

数有正有负, 所以设置数符; 阶码亦有正负, 所以设置阶符

 

如果为实数,则用浮点数的形式在内存存储,表示如下:

 

 

一般用4个字节表示一个浮点数,也有用8个字节表示的。

字长一定,尾数越多,精度越高;阶码越多,范围越大。

当计算机中出现小于机器所能表示的最小数时,机器只能当零来处理,当出现超过机器所能表示的最大数时,出现溢出现象,一旦出现溢出,就会停止运算。定点数,浮点数均会出现溢出现象。

 

 

字符型数据(char)

字符型数据实际上是作为整型数据在内存中存储的。

计算机是以字符编码的形式处理字符的,因此,我们在计算机内部是以ASCII码的形式表示所有字符的。所以7位二进制数即可表示出一个字符,我们用一个字节的容量(8位)存储一个字符。

 

例如:字符A的ASCII码为0x41或65,在内存中表示为:

 

在程序中表示为:

char   grade ;//定义一个字符型的变量空间(1个字节)

grade=‘A’;  //必须用‘   ’表示,否则易与标识符混同

‘ ’内括起来的字符表示该字符的ASCII码。

进一步,由于在内存中的形式与整型数据相同,所以,可以直接用其整型值给变量赋值。

char   grade;

grade=65;

以下的赋值形式均是等同的。

grade='A';           grade=65 ;         grade=0x41;         grade=0101;

 

#include<iostream.h>

void main(void)

{

   char a,b;

   a=‘A’;   //输入ASCII码

   b=65;   //输入十进制数

   cout<<"a="<<a<<endl;

   cout<<"b="<<b<<endl;

}

输出:

a=A

b=A

 

 

非打印字符

有些ASCII的字符代表某些操作,不能打印出来,如回车、退格等,可用两种方式表示这些字符。

1)用ASCII码的形式          char   re=13;

2)用转义字符               char   re=‘\n’;(p15)

 

转义字符虽然包含2个或多个字符,但它只代表一个字符。编译系统在见到字符“\”时,会接着找它后面的字符,把它处理成一个字符,在内存中只占一个字节。

典型转义字符 :

‘\n’换行            ‘\b’ 退格              '\t'  下一个输出区

若输出中包含这些特定格式,则再加一个\

输出 c:\tc\tc    表示为cout<<"c:\\tc\\tc";

可以用转义字符表示任一一个ASCII字符  ‘\ddd’ (八进制)        ‘\xhh‘ (十六进制)

'\101'    '\x41'        '\x61'    '\141'  

#include<iostream.h>

void main(void)

{

   char c1,c2,c3,c4;

   char n1,n2;

   c1='a';//字符常量

   c2=97;//十进制

   c3='\x61';//转义字符

   c4=0141;//八进制

   cout<<"c1="<<c1<<'\t'<<"c2="<<c2<<endl;

   cout<<"c3="<<c3<<'\t'<<"c4="<<c4<<endl;

   n1=‘\n’;      //转义字符:回车

   n2=‘\t’;       //转义字符:下一个输出区(Tab)

   cout<<"使用转义字符\n";

   cout<<"c1="<<c1<<n2<<"c2="<<c2<<n1;

   cout<<"c3="<<c3<<n2<<"c4="<<c4<<n1;

}

输出:

c1=a       c2=a  

c3=a       c4=a

使用转义字符

c1=a       c2=a  

c3=a       c4=a

 

字符串常量:

用"   "表示,在内存中顺序存放,以'\0'结束。

如:"CHINA"      

 

实际上内存是对应字符的ASCII码形式

 

 

标识符常量

在C++中有二种方法定义标识符常量,一种是使用编译预处理指令;另一种是使用C++的常量说明符const。

例如:

     #define    PRICE  30

//在程序中凡是出现PRICE均用30替代

     #define    PI  3.1415926

     #define    S   “China”

const float pi=3.1415926;  //将变量pi定义为常量

  (举例说明)

#include<iostream.h>

#define PI 3.14156

#define S  "China"

void main(void)

{

   const float pi=3.14156;//变量作为常量使用

   cout<<"PI="<<PI<<endl;

   cout<<"10*PI="<<10*PI<<endl;

   cout<<S<<endl;

//  PI=PI+3;

//  pi=pi+4;

   cout<<"PI="<<PI<<endl;

   cout<<"pi="<<pi<<endl;

}

输出:

PI=3.14156

10*PI=31.4156

China

PI=3.14156

pi=3.14156

 

下列常量的表示在C++中是否合法?若不合法,指出原因;若合法,则指出常量的数据类型。

 

32767      35u     1.25e3.43L        0.0086e-32

 

‘\87’“Computer System”   “a”   ‘a’     ‘\96\45’

-0+0.5-.567

 

变量

1) 在程序的执行过程中,其值可以改变的量称为变量。

2) 变量名必须用标识符来标识。

3) 变量根据其取值的不同值域,分为不同类型的变量:整型变量、实型变量、字符型变量、构造型变量、指针型变量等等。

4) 对于任一变量,编译程序要为其分配若干个字节(连续的)的内存单元,以便保存变量的取值。

5) 当要改变一个变量的值时,就是把变量的新的取值存放到为该变量所分配的内存单元中;用到一个变量的值时,就是从该内存单元中取出数据。

6) 不管什么类型的变量,通常均是变量的说明在前,使用变量在后。

 

变量赋初值

在定义变量的同时给变量赋值,即在内存中开辟出一个空间后马上给此空间赋值。

但这个空间的值并不是固定不变的,在程序的运行中一样可以改变。

  int   a=4; //定义语句,在开辟空间后马上为空间赋值

        a=6;        //重新为该空间赋值

  char   a='\x64',  b='d';            int   a1=6,   a2=98;

         a=‘A’;  b=‘\n’;                        a1=011;   a2=121;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值