11-指针
为了理解指针,我们可以通过10-Array中数组的概念来理解,将计算机中的内存想象为一个非常大的数组:
1 | let mem = [int; 2147483647] |
我们在编写程序A时,定义了变量i:
1 | let i: int = 65 |
那么在运行程序A时,i就被放在了mem里,我们不妨再假设i是mem的第N个元素,那么显然mem[N]就等于i,我们再定义一个符号&,他的用法是&V就等于N,&V的类型为*T,设p等于N,写成代码就是:
1 | let p: *int = &i |
这时p就等于N了,再假设符号*P等于mem[N],就有了:
1 | *p = 66 |
他就相当于
1 | mem[N] = 66 |
如果你理解了这里,那么你就掌握了指针的概念,同时也了解了Alum中指针的用法,即:
- 定义指针:
1 | let P: *T = &V |
- 使用指针:
1 | *P = C |
对于熟悉
C语言的读者很自然地会想到,数组在做算术运算是会退化为T *,可能会写出诸如*(A + N),但Alum作为一门强类型静态语言,并不支持这种写法,只能通过A[N]访问。
- Title: 11-指针
- Author: Wan Yutong
- Created at : 2026-03-01 12:34:32
- Updated at : 2026-03-03 11:38:47
- Link: https://cr0.dpdns.org/2026/03/01/11-Pointer/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments