Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否可以在 JNI 中将输入参数作为输出参数?
假设我有:
void average(jint n1,jint n2,jint av);
av作为输出,为什么不输入。
av
不是那种方式,不。
为了让被调用者修改参数,它必须有一个指向该参数的引用(即指针)。 jint而其他原语是按值传递的,这意味着参数的值从一个位置(内存或寄存器)传递到另一个位置。被调用者对该参数所做的任何更改都会对链中的最后一个元素进行,这显然对复制它的位置没有影响。
jint
为了“修改”参数,您必须将引用(指针)传递给它。在 Java 中最直接的方法是传递一个单元素原始数组,并让被调用者用“返回”值替换第一个元素。
返回值或包含多个返回值的聚合对象通常更容易。