簡體   English   中英

如何在Java中通過指針算法訪問數組元素

[英]How to access array elements by pointer arithmetic in Java

給定C語言中的以下聲明,我可以將'+'應用於地址,並訪問其他元素。

char toto[5];

換句話說,應用此運算符+

toto+0x04

訪問Java中的其他數組元素。

還有另一種方法可以在Java中實現此操作嗎?

非常感謝

如果我是對的,您想訪問數組中該位置的元素。 您可以在Java中執行此操作。

char foo[] = new char[]{'1', '2','3','4', '5'};
char fooAtPositionFour = foo[4];

並通過以下方式分配新值:

foo[4] = 'x';

從技術上講,因為toto + 4是地址,並且Java的內存管理策略與C的策略完全不同,所以沒有。 但是,您可以通過toto [4]獲得*(toto + 4);)

實際上,我需要隔離參數param是char []的最后四個字節

您是否需要最后四個字節或最后一個字符? 然后最后一個字符toto[toto.length-1]

對於最后四個字節,您需要將char數組(Java中的UTF-16,我不知道C語言中的編碼)轉換為字節數組,然后獲取最后四個字節。

new String(toto).toBytes("THE_CHAR_ENCODING_YOU_WANT_TO_USE")

Java幾乎總是有另一種方式來實現所需的內容。

您很少直接處理char[] 首選使用String和StringBuilder。

String toto = "hello";
String lastChar = toto.substring(4); // from the 4th character.

從字面上回答您的問題。 您可以將sun.misc.Unsafe與get / putByte或get / putChar類一起使用來進行指針運算,但是除非您確實需要,否則我建議避免使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM