Chương trình sau C++ biên dịch và chạy như mong đợi:Con trỏ trong C# để tạo mảng 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();
}
Gần nhất C# ví dụ đơn giản tôi có thể làm cho câu hỏi này là:
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;
}
}
Vì vậy, làm thế nào để làm cho con trỏ?
tự hỏi tại sao bạn muốn thao tác trực tiếp con trỏ bằng ngôn ngữ được quản lý. – BlackICE
Bởi vì tôi chán: D – y2k
Làm giảm bớt sự nhàm chán của bạn bằng cách đọc chương 18 của đặc điểm kỹ thuật - hai lần - trước khi bạn cố gắng viết mã không an toàn trong C#. –