接着昨天说的继续,昨天说到了字符指针。字符指针应用到的最主要的两个场景,一个是操作字符串,一个是操作字符串数组。做两个例程试验一下:
先来个最简单的,简单的字符串输入和打印:
结论:字符数组和字符指针,指向字符串的首个地址。
换一种方法,直接传递指针:
本来打算将字符指针的地址传递给数组,结果失败了。嗯嗯,这是一个坑,数组在定义后空间就被固定了,数组名代表的指针不具备游离性,也就是常量不可以被赋值。换一种写法:
将数组的首地址送给字符指针,成功了。其实这个点主要应对以后做单片机时的控制字拆解。将缓存区内的控制字送给字符指针,通过指针操作空间进行拆解。控制字长短还可进行校验。
如果想执着的将常量内容通过指针送进字符数组中,也不是不行,就是需要麻烦一点,需要通过元素操作,实际上和指针就没什么关系了,如下:
哈哈其实这又是一个典型的错误例子(其实是我一时兴起写的),pstr_2是一个空指针,怎么能直接解引用呢,不信的话我编译给你看:
回归正题,开始处理正常函数:
因为数组首地址是个常量,没法直接将指针变量送进去,那么就只好靠操作元素来实现了。这种类似于单片机底层操作中,直接从地址抓入缓存区。
上面都是一维数组,下面来看看二维数组;主要抓住一个概念,用指针指向字符串常量或者字符数组首地址。实验过程如下:
代码重点看几个重点:数组地址在建立时就已经分配好,是常量;如果要在char指针数组中使用其它数组,需要先定义好被引用的数组;指针数组里面存的是数组或者字符串的首地址,按照普通指针操作即可。
好了,今天就写这么多,个人学习私货,大神轻喷。