それは単純に見える質問です:
ネイティブ サイズの整数が算術演算に最適であるとすれば、C# (または他の .NET 言語) がネイティブ サイズのIntPtr
andを使用した算術演算をサポートしないのはなぜ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_t
Cの C# の対応物として扱うことができます。これらはポインターではなくstdint.h
整数です。