Carbon语言 指针

Carbon语言中的指针是一种数据类型,指针是存放数据的内存单元地址。

计算机系统的内存拥有大量的存储单元,每个存储单元的大小为1字节,为了便于管理,必须为每个存储单元编号,该编号就是存储单元的“地址”,每个存储单元拥有一个唯一的地址。

Carbon 指针的基本语法:

// 定义i32类型变量x,值为5
  var x: i32 = 5;
  // 把x的值改成10
  x = 10;
  // 定义i32*类型的指针p,指向变量x的地址
  var p: i32* = &x;
  // 通过指针修改x的值为7
  *p = 7;
  // 定义i32*类型的指针q,使用&*p,同样指向变量x的地址
  var q: i32* = &*p;
  // 通过指针q修改x的值为0
  *q = 0;
  // 定义一个i32类型的变量y,值为0
  var y: i32 = *p;

另外,Carbon 的指针不支持空指针,如果想表示不存在,使用 Optional。

Carbon语言与C++互操作,是Carbon宣传的重点,也是最大难点。现在Carbon语言还不完善,这里举一个Keynote中演示的例子。有一个C++的头文件 circle.h:struct Circle ...