C-二维数组作为函数参数, 字符数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C-二维数组作为函数参数, 字符数组相关的知识,希望对你有一定的参考价值。

 
1. 如果函数的参数是一个一维数组, 那么我们在传递的时候, 可以传递二维数组的某1行——一个一维数组
 
2. 二维数组可以作为函数的参数: 如果函数的参数是一个二维数组, 那么传入的实参也必须是一个相同类型的二维数组
 
3. 同一维数组一样, 当二维数组作为函数的参数的时候, 函数也是声明的一个指针指向传入的二维数组, 并通过指针对传入的二维数组进行操作
 
4. 当二维数组作为函数的参数的时候, 行数可以不写, 但是列数必须要写
 
5. 所以跟一维数组一样, 当二维数组作为函数参数是, 函数的参数还要有数组的行, 列这两个参数, 标准写法:
void test(int rows, int cols, int arr[][cols]){}
 
字符数组:
1. 字符数组的默认值问题: 声明一个字符数组, 不给这个字符数组的元素赋值, 那么这个字符数组的元素是有值的, 内存垃圾值
 
2. 在声明字符数组的同时, 如果初始化了部分元素, 那么其他的字符会被初始化为 ‘\0’
 
3. 字符数组不能存中文;
 
4. 如果制定的字符串数组长度小于等于字符串长度, 会出现存储不下的情况
 
5. 所以, 使用字符数组存储字符串数据的时候, 声明的时候最好不要指定长度
 
6.  scanf(“%s”, array);  //这时候不需要带&,  因为这时候 数组 array的 名字本身就能够代表其首地址
 
7. 用scanf进行字符串的输入的时候, 如果输入的长度大于数组长度, 不安全; 如果输入了空格, 就会认为输入结束
 
8. 不能用sizeof来计算字符串的长度, (有可能实际的字符串只占了数组的一部分), 用strlen();
另一种方法: while循环, 从第一个开始计数, 遇到 \0 结束;
 

以上是关于C-二维数组作为函数参数, 字符数组的主要内容,如果未能解决你的问题,请参考以下文章

c语言中怎么用二维数组作为函数参数

c语言中怎么用二维数组作为函数参数

C语言函数传递二维数组

如何将二维数组类型 char(字符串)作为函数参数传递?

C-二维数组, 字符串, 指针

C语言中当二维数组和多维数组作为函数参数时[重复]