C语言中的char-2

文章介绍了字符指针在操作字符串和字符串数组中的应用,通过示例程序展示了如何通过指针进行字符串输入、打印以及二维数组的操作。强调了数组地址的常量性质,指针不能直接赋值给数组,但可以存储数组的首地址。同时提到了在单片机编程中的应用场景。
摘要由CSDN通过智能技术生成

接着昨天说的继续,昨天说到了字符指针。字符指针应用到的最主要的两个场景,一个是操作字符串,一个是操作字符串数组。做两个例程试验一下:

先来个最简单的,简单的字符串输入和打印:

 

 结论:字符数组和字符指针,指向字符串的首个地址。

换一种方法,直接传递指针:

 本来打算将字符指针的地址传递给数组,结果失败了。嗯嗯,这是一个坑,数组在定义后空间就被固定了,数组名代表的指针不具备游离性,也就是常量不可以被赋值。换一种写法:

 将数组的首地址送给字符指针,成功了。其实这个点主要应对以后做单片机时的控制字拆解。将缓存区内的控制字送给字符指针,通过指针操作空间进行拆解。控制字长短还可进行校验。

如果想执着的将常量内容通过指针送进字符数组中,也不是不行,就是需要麻烦一点,需要通过元素操作,实际上和指针就没什么关系了,如下:

哈哈其实这又是一个典型的错误例子(其实是我一时兴起写的),pstr_2是一个空指针,怎么能直接解引用呢,不信的话我编译给你看:

 回归正题,开始处理正常函数:

因为数组首地址是个常量,没法直接将指针变量送进去,那么就只好靠操作元素来实现了。这种类似于单片机底层操作中,直接从地址抓入缓存区。

上面都是一维数组,下面来看看二维数组;主要抓住一个概念,用指针指向字符串常量或者字符数组首地址。实验过程如下:

代码重点看几个重点:数组地址在建立时就已经分配好,是常量;如果要在char指针数组中使用其它数组,需要先定义好被引用的数组;指针数组里面存的是数组或者字符串的首地址,按照普通指针操作即可。

好了,今天就写这么多,个人学习私货,大神轻喷。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值