**
* jni对数组运算
* 在C中没有建立新的数组副本,直接在原来的java数组上面修改。而后返回了jintArray类型数据
*/
JNIEXPORT jintArray JNICALL Java_com_org_vincent_javacallc_JNI_increseArray
(JNIEnv * env, jobject job, jintArray jarr){java
//一、获得java传过来的数组长度
jsize size=(*env)->GetArrayLength(env,jarr);
//二、获得C下的数组元素,JNI_FALSE表示不复制新的副本, jint直接获取jintArray指针
jint *intArray=(*env)->GetIntArrayElements(env,jarr,JNI_FALSE);
//三、遍历数组
int i=0;
for (i = 0; i < size; ++i) {
*(intArray+i)=*(intArray+i)+10;
LOGI("intArray[%d]=%d",i,*(intArray+i));
}
//这个语句必需要,否则java端不能获取到修改后的新数据
(*env)->ReleaseIntArrayElements(env,jarr,intArray,0);
//返回结果
return jarr;数组
}指针