C++/CLI学习笔记5(快速打通c++与c#相互调用的桥梁)

3.6 句柄与指针

在标准C++中,指针容纳的是另一个变量或函数的内存地址。这意味着可用指针间接引用变量。
但在C++/CLI中,是“运行时”帮你管理内存,所以它保留了将内存里的东西移来移去以最大化可用内存的权利。这意味着对象可能不老是呆在一个位置。指针中的地址可能过期,使用它会出问题。

因此,C++/CLI没有了传统的“指针”概念。相反,是用句柄(也称为跟踪句柄)来包含变量的地址,“运行时”会自动更新这个地址。

虽然句柄能存储任意数据类型的内存地址,但句柄变量要声明为特定的数据类型。Person对象的句柄不能存储Account对象的地址。声明的方式和普通变量一样,只是要在变量名前附加句柄操作符^。例如:

Person ^pp;//一个Person的句柄

Account ^ac; //一个Account的句柄

注:C++/CLI有时是允许使用指针的

person ^p=gcnew person("andy")

3.7数组

数组是多个数据存储位置的集合,每个位置容纳的都是相同类型的数据,例如全部都是int,或全部都是 double。数组在表示值的集合(比如每个月的天数,或者公司员.工的姓·名),而且知道值的数量时很有用。

和传统C++不同,C++/CLI的数组知道需要管理多少个数据。这使它们比传统C++数组安全,试图越过数组尾进行读写会造成运行时错误,防止损坏内存。

每个存储位置都是数组中的一个元素。数组元素通过索引访问。索引始于零,终于数组边界减1。索引为什么不从1开始?这是为了保持与C风格语言的兼容。这些语言的数组索引都是从零开始的。

array<int>^arr = gcnew array<int>(10);//声明10个整数的数组

int x;

arr[9] = 21;1/最后一个数组元素的索引是9,实际是第10个元素x = arr[0];l/ 访问数组元素

arr[0] = 23;/第一个数组元素的索引是日

×= arr[1];//访问数组元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rains卍Soft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值