#include<stdio.h> #include<stdlib.h> main() { //char arr [] = {'H','e','l','l','o'}; int arr [] = {1,2,3,4,5}; //数组的名字就是一个内存地址值 printf("arr= %#x \n",arr); //数组的首元素的地址就是数组的内存地址值 printf("arr[0]= %#x \n",&arr[0]); //数组里的元素在内存中是一块连续的内存空间 int i; for(i=0;i<5;i++){ printf("arr[%d]= %#x \n",i,&arr[i]); } int* p = &arr; printf("%d \n",*(p+0)); printf("%d \n",*(p+1)); printf("%d \n",*(p+2)); printf("%d \n",*(p+3)); printf("%d \n",*(p+4)); //指针所指向的内存地址向后偏移一个单位 //一个单位的长度取决于数组里所存放的数据类型的类型 /**char* p = &arr; printf("%c \n",*(p+0)); printf("%c \n",*(p+1)); printf("%c \n",*(p+2)); printf("%c \n",*(p+3)); printf("%c \n",*(p+4));*/ /**int ii; for(ii = 0 ;ii<5;ii++){ //printf("arr[%d]=%c \n",ii,arr[ii]); } */ }