#include<stdio.h>
int main(){
/*
指针数组的表示:
int *p[2];
数组指针的表示:
int (*p)[2];
指针有且仅能进行加法运算
*/
/*
1.数组当参数传递的时候实际传递的是数组第一个元素的地址
2.数组的指针和数组第一个元素的指针数值相等但是类型不一致
*/
int b=2;
int a=1;
int c=3;
int *p=&a;
printf("%d----a的地址为%p----指针p的地址为%p\n",*p,&a,p);
p=p+1;
printf("%d----b的地址为%p----指针p的地址为%p\n",*p,&b,p);
p=p-2;
printf("%d----c的地址为%p----指针c的地址为%p\n",*p,&b,p);
//练习
int *p1=&a;
int *p2=&b;
int *arr[2]={p1,p2};
int **p3=arr;//此处arr指的是指针数组的第一个元素即P1
printf("**p3=%d\n",**p3);
return 0;
} |
|