我只是对 C++/CLI 句柄(^)及其工作原理感到好奇。例如:
我无法理解的第一件事是,在这里接受的答案说插入符号是*(指针)的托管等效项。但是,与 * 不同,我可以直接为 ^ 赋值。
int ^num;
num = 4;
这在 C++ 中不起作用:
int *num2;
num2 = new int[1];
num2 = 10;
为什么会观察到这种行为?此外,在 Microsoft网页中,他们说您不能指向对象的成员,并且它不支持指针算术。所以下面的代码片段都无法编译
int ^num3 = gcnew int[10];
for(int i = 0; i<10; i++)
%(num3 + i) = i
或者
for(int i = 0; i<10; i++)
(num3 + i) = i
为什么???
这让我想到了最后一个问题:在 C++/CLI 中遵循 int 本机/普通 C++ 代码片段相当于什么?
int *array1;
array1 = new int[ 10];
for( int i = 0; i < 10; i++)
*(array1 + i ) = i;