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

相关推荐

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

    2024-03-18 05:20:04       42 阅读
  2. C++/CLI学习笔记3(快速打通c++c#相互调用桥梁)

    2024-03-18 05:20:04       40 阅读
  3. C++/CLI学习笔记8(快速打通c++c#相互调用桥梁)

    2024-03-18 05:20:04       44 阅读
  4. C++/CLI学习笔记1(快速打通c++c#相互调用桥梁)

    2024-03-18 05:20:04       41 阅读
  5. C++/CLI学习笔记9(快速打通c++c#相互调用桥梁)

    2024-03-18 05:20:04       45 阅读
  6. C++/CLI学习笔记4(快速打通c++c#相互调用桥梁)

    2024-03-18 05:20:04       38 阅读
  7. C++/CLI学习笔记12(快速打通c++c#相互调用桥梁)

    2024-03-18 05:20:04       37 阅读
  8. C++/CLI学习笔记10(快速打通c++c#相互调用桥梁)

    2024-03-18 05:20:04       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-18 05:20:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-18 05:20:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-18 05:20:04       82 阅读
  4. Python语言-面向对象

    2024-03-18 05:20:04       91 阅读

热门阅读

  1. Vue3项目随笔

    2024-03-18 05:20:04       38 阅读
  2. [C++] 实现Union

    2024-03-18 05:20:04       43 阅读
  3. struct 和 union 的区别?

    2024-03-18 05:20:04       39 阅读
  4. iOS——【Blocks】

    2024-03-18 05:20:04       35 阅读
  5. -bash-4.2$

    2024-03-18 05:20:04       44 阅读
  6. c语言:苹果和虫子

    2024-03-18 05:20:04       46 阅读
  7. 2022蓝桥杯/a进制转十进制/c\c++

    2024-03-18 05:20:04       40 阅读
  8. Mysql关于同时使用Group by 和Order by问题

    2024-03-18 05:20:04       44 阅读
  9. html元素基本使用

    2024-03-18 05:20:04       50 阅读
  10. leetcode-提莫攻击

    2024-03-18 05:20:04       47 阅读
  11. [青龙面板]依赖管理一键安装/免代码安装

    2024-03-18 05:20:04       38 阅读
  12. 程序员如何规划职业赛道?

    2024-03-18 05:20:04       46 阅读
  13. 粤嵌6818开发板嵌入式开发Linux内存映射

    2024-03-18 05:20:04       47 阅读
  14. [hive面试必备]-hive如何解决数据倾斜问题

    2024-03-18 05:20:04       41 阅读