1.字符指针
使用方法:
1.
2.
说到这里,就不难看出,指针储存的是地址,而不是元素本体。
打个副本《剑指offer》的题目:
结果:
至于为什么,我用图像解释:
2.指针数组
概念:是存放指针的数组。
使用方法:
例子:
解释一下:
3数组指针
3.1数组指针的定义
数组是指针,还是数组?
是指针。
定义:数组指针是指向数组的指针。
区别与分辨
int* p1[10]; int(*p2)[10];这两个那个是数组指针?
答案:第二个是数组指针。
注:“[ ]"的优先级要高于” * “。
3.2&数组名VS数组名
在int arr[10]; arr 、&arr 与 arr[0]有什么区别?
来看下面一段代码
你会发现这三个的地址是相同的。但是,它们表达的含义一样吗?
看下一段代码:
这样就可以看出来了:arr与&arr的值虽然一样,但是意义不同。arr = arr[0]是表示数组首元素的地址,&arr是表示一个数组的地址。
3.3数组指针的使用
代码:
解释:
4.数组参数、指针参数
4.1一维数组传参
这些全都是可以的。
4.2二维数组传参
看代码:那些是可以实现的?
答案与解释:
4.3一级指针传参
一级指针传参用一级指针接收。
当函数的参数是一级指针时,可以用什么接受参数?
4.4二级指针传参
当函数的参数是二级指针时,可以用什么接受参数?
5.函数指针
既然有函数指针,那函数一定有地址。函数地址是什么呢?
下列代码:
这样可以看出函数确实是存在指针的。
函数指针的表示方法
函数指针的调用
从图中可以看出,函数调用有两种方式。(*)是可以省略的。
6.函数指针数组
定义:存放函数指针的数组,每个元素都是函数指针类型。
int (*ph[4]) (int, int)便是函数指针数组的表达形式。
使用方法:
我们让上列函数同时使用一遍:
(未完。。。。。)