下面的C++程序編譯和運行正常:C#中的指針使int數組?
#include <stdio.h>
int main(int argc, char* argv[])
{
int* test = new int[10];
for (int i = 0; i < 10; i++)
test[i] = i * 10;
printf("%d \n", test[5]); // 50
printf("%d \n", 5[test]); // 50
return getchar();
}
最接近C#簡單的例子,我可以彌補這方面的問題是:
using System;
class Program
{
unsafe static int Main(string[] args)
{
// error CS0029: Cannot implicitly convert type 'int[]' to 'int*'
int* test = new int[10];
for (int i = 0; i < 10; i++)
test[i] = i * 10;
Console.WriteLine(test[5]); // 50
Console.WriteLine(5[test]); // Error
return (int)Console.ReadKey().Key;
}
}
那麼,如何使指針?
問問自己爲什麼要直接用託管語言操作指針。 – BlackICE 2010-03-30 16:11:29
因爲我很無聊:D – y2k 2010-03-30 16:18:22
在您嘗試使用C#編寫不安全的代碼之前,閱讀規範的第18章 - 減少兩次 - 減輕您的無聊。 – 2010-03-30 16:28:20