C语言指针和数组

指针和数组

C语言其高效性就在于其有指针这一利器,所以我们要好好弄懂指针和数组的区别

指针和一维数组的关系

数组名的意义及其访问一维数组的方法

数组名:数组名代表了存放数组的连续空间的首地址

对数组的访问可以通过两种方式:下标法和指针

第一种:下标法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
int main()
{
int a[5],i;
printf("Input five numbers");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]); /*下标法写入数组元素*/
}
for(i=0;i<5;i++)
{
printf("%d",&a[i]); /*下标法读出数组元素*/
}
return 0;
}

第二种:指针

因为数组名a代表数组的首地址,即元素a[0]的地址(&a[0])

因此,可以通过*a(此处 *为解引用符)来获得首地址a所指的储存单元中储存的内容

原因数组元素之所以能够通过这种方法来引用,是因为数组的下标运算符[]实际上就是以指针作为操作数的

类型 : *(a+i)意义为引用数组首地址后第i个元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
int main()
{
int a[5],i;
printf("Input five numbers");
for(i = 0; i < 5; i++)
{
scanf("%d",a+i); /*这里的a+i等于a[i]*/

}
for(i = 0; i < 5; i++)
{
printf("%d",*(a+i); /*这里的a+i等于a[i]*/

}
return 0;

}

指针与二维数组的关系

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信