## 指针
### 值传递
> 不影响变量本身
### 地址传递
> 影响变量本身
###引用传递
> 影响变量本身
```C#includeint main(){
int a[]={1, 2, 3, 4, 5};
int *p;
p=a;
int i=0;
for(i=0;i<5;i++){
printf("%d ",a[i]);
}
putchar(' ');
for(i=0;i<5;i++){
printf("%d ",p[i]);
}
putchar(' ');
for(i=0;i<5;i++){
printf("%d ",*(p+i));
}
putchar(' ');
for(i=0;i<5;i++){
printf("%d ",*(a+i));
}
putchar(' ');
for(i=0;i<5;i++){
printf("%d ",*p);
p++;
}
for(i+0;i<5;i++,p++){
printf("%d ",*p);
}
putchar(' ');
}
```
```C#includevoid fun1(int x){
int i=2;
printf("%d ",i+x);
}
void fun2(int x){
int i=2;
printf("%d ",i*x);
}
void fun3(int x){
int i=3;
printf("%d ",i%x);
}
typedef void (*Funtype)(int);
void CallMyFun(Funtype fp,int x){
fp(x);
}
int main(){
CallMyFun(fun1,3);
CallMyFun(fun2,5);
CallMyFun(fun3,7);
return 0;
}
```