目的:利用指针访问数组中的元素
关键是利用p++指针向后偏移
在 int arr[10]
int *p=arr
的前提下
p与arr值相同而且类型也相同
但是p是指针变量,arr是指针常量,常量的值不可改变
访问arr[i]有四种方式
a[i]
p[i]
*(a+i)
*(p+i)
#include<iostream>
using namespace std;
int main()
{
//创建数组
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int *p=arr;//指向数组首地址
cout<<"利用指针访问第一个数据"<<*p<<endl;
p++;//int 类型p++之后相当于地址向后移4个字节
cout<<"利用指针访问第二个数据"<<*p<<endl;
//利用指针遍历数组
int *p2=arr;
for(int i=0;i<10;i++)
{
cout<<*p2<<endl;
p2++;
}
return 0;
}
#include <iostream>
using namespace std;
int main(void)
{
int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, *p = a, sum = 0, i;
for (i = 0; i<10; i++)
sum = sum + *(p + i);//求数组所有元素总和
for (i = 0; i<10; i++, p++) // 指针变量可进行自加、自减运算
cout << *p << '\t';
cout << endl << "sum=" << sum << endl;
return 0;
}
补充一个数组元素求和