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二级指针传参 

五、函数指针 

数组指针 —— 指向数组的指针 —— 存放的是数组的地址 —— &数组名就是数组的地址

函数指针 —— 指向函数的指针 —— 存放的是函数的地址 —— 怎么得到函数的地址呢?&函数名么?

今天就给大家讲解这么多,希望可以和大家一起努力变强???