C语言天花板——指针(进阶1)
接上次的指针初阶(http://t.csdnimg.cn/oox5s),这次我们继续的探寻指针的奥秘,发车咯!!!???
一、字符指针
可以看到我们将指针p给打印出来,就是字符串,我们将指针p解引用打印出来后,会发现就是首元素‘a’,进而也验证了我们的猜想。
总结:所以我们最后可以发现字符数组不仅可以表示字符,还可以表示字符串。
二、指针数组
我们在指针初阶的文章里提到过指针数组,简单的复习一下
那这种以指针类型为元素的数组怎么来用呢? ??
可以使用指针数组模拟一个二维数组
当然我们也可以指针数组来管理字符串:
#include<stdio.h> int main() { //指针数组 char* arr[5] = {"hello Tom", "hehe", "goodgood", "students", "C++"}; int i = 0; for (i = 0; i < 5; i++) { printf("%sn", arr[i]); } return 0; }
三、数组指针
数组指针是指针
字符指针:是指向字符类型的指针
整形指针:是指向整型类型的指针
浮点型指针:是指向浮点类型的指针
那么
数组指针:是指向数组类型的指针
再来两个例子:供大家可以好好的琢磨一下到底该怎样写才能写出正确的格式
注意:如果像arr3一样没有数组大小的话,数组指针里面不能为空
实际上形参的形式应该是指针,初期写成数组形式,是便于初学者理解和使用
四、数组传参和指针传参
在写代码的时候难免要把【数组】或者【指针】传给函数,那函数的参数如何设计呢???
4.1一维数组传参
4.2二维数组传参
4.3一级指针传参
4.4二级指针传参
五、函数指针
数组指针 —— 指向数组的指针 —— 存放的是数组的地址 —— &数组名就是数组的地址
函数指针 —— 指向函数的指针 —— 存放的是函数的地址 —— 怎么得到函数的地址呢?&函数名么?
今天就给大家讲解这么多,希望可以和大家一起努力变强???