[英]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.