解決済み

JavaでC言語のポインタ演算風な使い方は

  • 困ってます
  • 質問No.5243935
  • 閲覧数544
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0
Java初心者です。ずっとC言語をやっていました。
Javaにはポインタは存在せず(実際は参照渡しなのでポインタその
ものなのですが)、ポインタに対する演算はありませんよね。

C言語で、

int buf[2*10];

int *dst = buf;

for(i=0;i<10;i++){
dst[0]=a;
dst[1]=b;
dst += 2;
}

のようなソースをJavaで書こうとすると、

for(i=0;i<10;i++){
buf[i*2+0]=a;
buf[i*2+1]=b;
}

しか思いつきません。

コンパイルして最適化されれば問題ないと思いますが、
なんか配列中の演算が演算量をとりそうで、気になっています。

もっと高速に処理されるような書き方はないものでしょうか?

アドバイスよろしくお願いします。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 23% (3656/15482)

ループ中の i*2 が共通なので
for (i = 0, j = 0; i < 10; i++, j+=2) {
buf[j] = a;
buf[j+1] = b;
}
と書いたらもうちょっとは速くなるかもね, くらいか?
お礼コメント
noname#99417
確かに、それぐらいしてあげれば、コンパイラで
最適化されそうですね。
投稿日時 - 2009-08-28 17:53:57
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ