更新:2007 年 11 月
在不安全的上下文中,可通过使用指针元素访问来访问内存中的元素,如下面的示例所示:
复制代码 | |
---|---|
char* charPointer = stackalloc char[123]; for (int i = 65; i < 123; i++) { charPointer[i] = (char)i; //access array elements } |
方括号中的表达式必须能够隐式转换为 int、uint、long 或 ulong。操作 p[e] 等效于 *(p+e)。与 C 和 C++ 一样,指针元素访问不检查越界错误。
示例
在此示例中,123 内存位置被分配给字符数组 charPointer。该数组用于在两个
请注意,表达式 charPointer[i] 等效于表达式 *(charPointer + i),使用这两个表达式可获得相同的结果。
C# | 复制代码 |
---|---|
// compile with: /unsafe
|
C# | 复制代码 |
---|---|
class Pointers { unsafe static void Main() { char* charPointer = stackalloc char[123]; for (int i = 65; i < 123; i++) { charPointer[i] = (char)i; } // Print uppercase letters: System.Console.WriteLine("Uppercase letters:"); for (int i = 65; i < 91; i++) { System.Console.Write(charPointer[i]); } System.Console.WriteLine(); // Print lowercase letters: System.Console.WriteLine("Lowercase letters:"); for (int i = 97; i < 123; i++) { System.Console.Write(charPointer[i]); } } } |
复制代码 | |
---|---|
Uppercase letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ Lowercase letters: abcdefghijklmnopqrstuvwxyz |