指针与数组的关系

# include<stdio.h>
int main()
{
    int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int *p;
    //p = a;   //指针变量指向一个数组 相当于p = &a[0];指向了首地址 //前者是一般的写法,比较简单 
    p = &a[5];   //此时,指针变量指向其中一个数组成员,相当于p[0] = a[5],所以p[3] = a[8] 
    p[3] = 100;  //当指针变量指向一个数组的时候,c语言语法规定,指针变量名可以当数组名使用
//相当于*(p + 3) = 100
a[4] = 200; //p,a可以混合使用 *p = 500; //此时相当于p[0] = 500 = a[5],若p = a, 那么p[0] = a[0] =*p = 500 printf("%lu, %lu\n", sizeof(a), sizeof(p)); //40,8 int i; for(i = 0; i < 10; i++) { printf("a[%d] = %d\n", i, a[i]); } return 0; }

 

posted @ 2018-02-18 14:06  heheheda  阅读(125)  评论(0编辑  收藏  举报