如何通过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. 

从字面上回答你的问题。 您可以使用带有get / putByte或get / putChar类的sun.misc.Unsafe来执行指针算术,但我建议避免使用它,除非您确实需要。