指针类型 | 指针声明 | 指针赋值 | 指针使用 |
整数型指针 | int *p | Int a=10 ;p=&a; | Printf(“%d”,*p); |
浮点型指针 | Double *p | Double a=10;p=&a; | Printf(“%lf”,*p); |
字符型指针 | Char *p | Char a=’a’;p=&a; | Printf(“%c”,*p); |
数组型指针(一维) | int *p; | intarr[3]={1,2,3}; p=arr; | printf("%d\n",*(p+1)); |
数组型指针(二维) | int (*p1)[3]; | int arr1[2][3]={ 1,2,3, 4,5,6}; p1=arr1; | printf("%d\n",*(*(p1+1)+1)); |
字符串指针 | char *pt3; | chartr[]="hello"; pt3=str; | printf("%s\n",pt3); |
指针的指针 | int *pt1; int **pt2; | int a=10; pt1=&a; pt2=&pt1; | printf("%d %d %d\n",a,*pt1,**pt2); |
存储指针的数组和存储数组的指针的区别?
char *p[10];
这是指针数组,本质上就是一个数组,里面存储着10个指针
char (*p)[10];
这是数组指针,本质上是指针,因为这个元素第一个先看的(优先级最高的)是指针,本质就是指针,这个指针指向一个数组,这个数组的元素量是十个。
地址都是 32 位长度的也就是 4 字节的。