指標和陣列的關係(Android之JNI)

我叫阿狸貓發表於2014-02-14
#include <stdio.h> 
#include <stdlib.h>

//第一個引數是char的記憶體地址型別 因為列印arr是記憶體地址 &arr 和arr一樣 
void printArr(char* arr,int len){
	int i;//c99模式下 for迴圈中不能實現變數的宣告 
	for(i=0;i<len;i++){
		//由於元素的記憶體地址是連續的,所以可以通過*(arr+i)獲取其他元素 
		printf("arr[%d] = %c\n",i,*(arr+i));
	}
} 

main(){
	char arr[] = {'h','e','l','l','o'};
	//發現陣列元素的地址值是連續的
	printf("arr[0] = %#x\n",&arr[0]);//0x28ff1b
	printf("arr[1] = %#x\n",&arr[1]);//0x28ff1c
	printf("arr[2] = %#x\n",&arr[2]);//0x28ff1d
	
	printArr(arr,5);
	
	printf("arr[0] = %#x\n",arr);//0x28ff1b 和陣列第一個元素的地址值一樣 
	printf("arr[0] = %#x\n",&arr);//0x28ff1b  和上面的一樣 
	
	system("pause");
} 

相關文章