更新:2007 年 11 月
要获取计算结果为固定变量的一元表达式的地址,请使用 address-of 运算符:
复制代码 | |
---|---|
int number; int* p = &number; //address-of operator & |
address-of 运算符仅适用于变量。如果该变量是可移动变量,则在获取其地址之前,可以使用
确保初始化该变量是程序员的责任。如果变量未初始化,编译器不会发出错误消息。
不能获取常数或值的地址。
示例
此示例声明一个指向 int 的指针 p,并将整数变量 number 的地址赋值给该指针。给 *p 赋值的结果是初始化变量 number。如果对此赋值语句进行注释,则将取消对变量 number 的初始化,但是不会发出编译时错误。注意该示例如何使用
C# | 复制代码 |
---|---|
// compile with: /unsafe
|
C# | 复制代码 |
---|---|
class AddressOfOperator { static void Main() { int number; unsafe { // Assign the address of number to a pointer: int* p = &number; // Commenting the following statement will remove the // initialization of number. *p = 0xffff; // Print the value of *p: System.Console.WriteLine("Value at the location pointed to by p: {0:X}", *p); // Print the address stored in p: System.Console.WriteLine("The address stored in p: {0}", (int)p); } // Print the value of the variable number: System.Console.WriteLine("Value of the variable number: {0:X}", number); System.Console.ReadKey(); } } /* Output: Value at the location pointed to by p: FFFF The address stored in p: 2420904 Value of the variable number: FFFF */ |