以下将介绍字符串数组用二级指针传参的几种方法,例子都打印h;
(环境VisualStudio2022)
我们都知道字符串数组的元素是字符串,所以字符串数组可以看成一个二维数组每个元素为一个一维数组,另外字符串默认结尾有"\0",所以在定义时应将元素长度加1。
方法一:
将字符串数组定义为一个指针数组
方法二:
用指针指向字符串数组的首元素地址
这里应注意的是字符串以"\0"结尾
在内存中为:
a ,b ,c ,\0 ,z ,h ,j ,\0 ,y ,s ,y ,\0
所以应是加 5
指针p指向字符串数组首行元素的地址,而首行元素的地址其实也就是第一个元素a的地址
方法三:
二级指针是不能直接访问在栈区开辟空间的二维数组的,但可以访问在堆区开辟空间的二维数组
#详细可看函数栈帧的创建和销毁
方法四:
也可以简单的用数组指针接收,并应在传参时加上二维数组的行数
以上结果都是打印字符 ‘ h ’