频道栏目
读书频道 > web开发 > .NET > Visual C++ .NET程序设计教程(第2版)
2.2.1 变量
2012-11-26 10:49:47     我来说两句
收藏   我要投稿
本书以Visual C++ .NET为平台介绍程序设计方法。第一部分为教程,首先介绍Visual C++ .NET开发环境,然后介绍C++/CLI语言基础和C++/CLI面向对象编程基础,在这个基础上系统介绍Visual C++ .NET应用程序设计...  立即去当当网订购

2.2 数据及其类型

C++/CLI不同于传统的ISO C++,它诠释了C++ .NET的内涵,尤其是C++/CLI的托管数据和托管代码,这里先来讨论托管数据类型。

2.2.1 变量

程序中的数据一般可分为常量和变量两大类。在程序运行过程中,其值可以被改变的量称为变量。变量的作用是存储程序中需要处理的数据,在C++/CLI中,它可放在程序中的任何位置。但使用变量前必须先定义这个变量。

1. 变量的定义

定义一个变量的最基本的形式就是由“类型”和“变量名”组成的,例如:
int  nNum1;
int  nNum2;
int  nNum3;
double  x;

其中,int和double都是C++/CLI内建的类型名,分别是整型和双精度浮点型。这就是说,nNum1、nNum2、nNum3被定义成整型变量,而x被定义成双精确度浮点型变量。

有时,还可以将同类型的变量定义在一行语句中,不过变量名要用逗号(,)分隔。例如上面的变量还可这样定义:
int   nNum1,  nNum2,  nNum3;
double   x;

但要注意有两种类型的变量定义,一种是跟踪句柄,另一种是指针。在C++/CLI中,定义一个跟踪句柄变量,需要在类型名后面或变量名前面加上“^”符号,而对于指针变量,则使用“*”。例如:
String^  handlename;   // ^在类型名后面
String  ^handlename;   // ^在变量名前面
String*  pointername;
String  *pointername;

这就是说,handlename是一个跟踪字符串的句柄(以后还会说明),或称为是字符串类型的一个引用。pointername是一个指向一个字符串的指针,此处的指针定义与ISO C++不一样,特别要注意。

2. 变量的初值化

程序中常需要对一些变量预先设置初值,这一过程称为初始化。一般来说,可在定义变量的同时使变量初始化。例如:
int   nNum1 = 3;   // 指定nNum1为整型变量,初值为3
double   x = 1.28;   // 指定x为双精度浮点变量,初值为1.28

也可以在多个变量的定义语句中单独对某个变量初始化,例如:

int  nNum1,  nNum2 = 3,  nNum3;

表示nNum1、nNum2、nNum3为整型变量,但只有nNum2的初值为3。

变量的初始化还有另外一种形式,称为构造初始化,例如:

int  nX(1), nY(3);

表示nX和nY是整型变量,它们的初值分别指定为1和3。

需要注意的是,一个未初始化的变量不是没有数值,而是取决于变量在系统中的存储形式,它可能是系统的默认值或无效值。

3. 变量名

在C++/CLI中,变量名的命名法则仍采用ISO C++的规定(对于其他标识符也一样):

(1)标识符都必须由大小写字母、数字字符(0~9)和下划线(_)组成,且第一个字符必须为字母或下划线。

(2)任何标识符中都不能有空格、标点符号及其他字符,且字符大小写是有区别的,例如,data、Data、DaTa、DATA等都是不同的标识符。

(3)不能和C++/CLI预留的关键字同名(如表2-1所示),包括双个单词组成的关键字(如表2-2所示),也不能和C++/CLI本身的标识符同名(如表2-3所示)。


 

(4)在同一个程序块中,不能有两个相同的变量名,否则会出现“重复定义”的编译错误。但在不同的程序块可有相同的变量名,此时究竟使用哪一个变量,遵循着“靠近优先”的原则。

 

事实上,预定义的C++/CLI数据类型最终可分为两类:值类型和引用类型。这两种类型究竟有何不同,它们又是怎样转换,以后还会详细讨论。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.1.5 生成和运行
下一篇:2.2.2 基本值类型
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站