C# c中的AddressOf和c+中的指针有什么区别+; 我在C语言中的指针和C++中的指针混淆了吗? Addressof是manage execution,pointer是unmanage execution或其他东西,我说的对吗?
来自MSDN的示例讲述了大部分故事:C# c中的AddressOf和c+中的指针有什么区别+; 我在C语言中的指针和C++中的指针混淆了吗? Addressof是manage execution,pointer是unmanage execution或其他东西,我说的对吗?,c#,c++,pointers,c++-cli,address-operator,C#,C++,Pointers,C++ Cli,Address Operator,来自MSDN的示例讲述了大部分故事: int number; int* p = &number; Console.WriteLine("Value pointed to by p: {0}", p->ToString()); 这将数字变量的地址分配给指向int p的指针 这其中有一些陷阱: 1.必须初始化要获取其地址的变量。值类型(默认值)没有问题,但引用类型有问题 在.NET中,变量可以在内存中移动,而不需要您意识到它。如果您需要处理一个变量的地址,那么您确实希望使用fixed
int number;
int* p = &number;
Console.WriteLine("Value pointed to by p: {0}", p->ToString());
这将数字变量的地址分配给指向int p的指针
这其中有一些陷阱:
1.必须初始化要获取其地址的变量。值类型(默认值)没有问题,但引用类型有问题
MSDN中的示例讲述了大部分故事:
int number;
int* p = &number;
Console.WriteLine("Value pointed to by p: {0}", p->ToString());
这将数字变量的地址分配给指向int p的指针
这其中有一些陷阱:
1.必须初始化要获取其地址的变量。值类型(默认值)没有问题,但引用类型有问题
AddressOf是一个VB运算符,在C#中不存在。它创建一个过程的委托。稍后可以使用委托在不包含过程名称的代码中调用过程
C/C++中的指针表示内存中的地址。您可以创建一个指向函数的指针,并使用它调用该函数,因此在这种情况下,指针和委托的行为类似。然而,委托不仅仅是函数指针。最重要的区别是代理可以链接起来,并一次调用多个过程 AddressOf是一个VB运算符,在C#中不存在。它创建一个过程的委托。稍后可以使用委托在不包含过程名称的代码中调用过程 C/C++中的指针表示内存中的地址。您可以创建一个指向函数的指针,并使用它调用该函数,因此在这种情况下,指针和委托的行为类似。然而,委托不仅仅是函数指针。最重要的区别是代理可以链接起来,并一次调用多个过程