C之指针的加法

C之指针的加法

#include<stdio.h>

#include<stdlib.h>


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