引入
前面,我们知道数组和指向数组的指针都可以作为函数参数,那么字符指针能否作为函数参数呢?答案是肯定的。
在 C 语言中,如果我们需要传递字符串,其实传递的是该字符串首元素的地址
,这样我们顺着地址移动指针就可以找到这个字符串了。
因为我们传递的是地址,所以改变了该地址后面的元素内容后,主调函数也会同时改变
。
函数调用的方式实现字符串复制
用函数调用的方式,实现字符串的复制。
1 |
|
上面我们定义的 copystr 函数是没有返回值的,我们仅仅是利用角标法,取到了地址后面的值,然后一个一个的赋值给 b。
字符指针的方式实现字符串复制
我们再用字符型指针写一下就是:
1 |
|
我们的 copy_str 不用动,我们定义两个指针,然后将这两个指针分别赋值为字符数组的地址。然后,我们在实参传递过来的就是字符数组的地址了,然后就像使用数组一样,copy_str 直接遍历赋值。
字符指针作为实参和形参实现字符串复制
1 |
|
首先,我们在创建字符串时,用字符数组和字符指针分别创建了字符串。
然后,我们作为实参传递给函数的是字符指针。
接着,我们在函数中,通过移动指针的方式,将 a 的字符串复制到了 b 中。
尾巴
这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。