当前位置:   article > 正文

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

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];//访问数组元素

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/259629
推荐阅读
相关标签
  

闽ICP备14008679号