C语言-指针和数组

Int ages[5]={10,9,8,7,6};

遍历数组

For(int i=0;i<5;i++)

Printf(“%d\n”,ages[i]);

使用指针遍历数组

Int *p;

P=ages;//也可以写成p=&ages[0];,指针变量p指向了数组的首元素

元素的地址:

第一个元素的地址p    &ages[0]

第二个元素的地址p+1    &ages[1]

第三个元素的地址p+2    &ages[2]

元素的值

*p        ages[0]

*(p+1) ages[1]

*(p+2) ages[2]

把指针当做数组来用:

For(int i=0;i<5;i++)

Printf(“%d\n”,*(p+i));

 

  (1)数组元素的三种访问形式:

①. 数组名[下标]

②. 指针变量名[下标]

③. *(p+1)

(2)指针变量的+1究竟是加多少?这取决于指针的类型,如果是char类型则加1个字节,如果是int类型的,则加4个字节。

  (3)利用指针来接收一个数组,指针变量指向了数组的首元素。

Void change(int array[])等价于void change(int *array)。

前者存储的虽然是数组元素的首地址,但是在传递时就已经变成指针了。

示例:

Void change(int *array)

{

//Printf(“%d\n”,array[2]);

Printf(“%d\n”,*(array+2));

}

Int main()

{

Int ages[5]={1,2,3,4,5};

Change(ages);

}

调用的结果为:数组的第三个元素3

若改给change(&ages[2]);则调用的结果为5,因为此时array指向的是ages[2],把ages[2]当做了array的首元素

 

posted on 2015-03-04 23:00  二狗你变了  阅读(118)  评论(0)    收藏  举报

导航