それは単純に見える質問です:
ネイティブ サイズの整数が算術演算に最適であるとすれば、C# (または他の .NET 言語) がネイティブ サイズのIntPtrandを使用した算術演算をサポートしないのはなぜUIntPtrですか?
理想的には、次のようなコードを記述できます。
for (IntPtr i = 1; i < arr.Length; i += 2) //arr.Length should also return IntPtr
{
arr[i - 1] += arr[i]; //something random like this
}
32 ビットと 64 ビットの両方のプラットフォームで動作するようにします。(現在、 を使用する必要がありますlong。)
編集:
私はこれらをポインターとして使用していません(「ポインター」という言葉は言及されていませんでした)。native intこれらは、MSIL およびintptr_tCの C# の対応物として扱うことができます。これらはポインターではなくstdint.h整数です。