#include <bits/stdc++.h>
using namespace std;
void f(int a[],int n)/*传数组符号实际传的是数组手元素地址*/
{
for(int i=0;i<n;i++)
a[i]=1997;
}
void g(int a[],int n)/*通过一个指针p和相应的地址a+i等价,然后修改p指向的内容的值来同步改变数组a的值*/
{
int *p;
for(int i=0;i<n;i++)
{
p=a+i;
*p=1997;
}
}
void k(int a[],int n)/*这个和g一样,让p和a+i相等,然后企图通过改变p本身的值从而达到改变a的目的*/
{
int *p;
int b[10]={1997};
for(int i=0;i<n;i++)
{
p=a+i;
p=&b[i];
}
}
void print(int a[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
int main()
{
int a[10];
memset(a,0,sizeof(a));
f(a,10);
print(a,10);
printf("\n");
memset(a,0,sizeof(a));
g(a,10);
print(a,10);
printf("\n");
memset(a,0,sizeof(a));
k(a,10);
print(a,10);
return 0;
}