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-二维数组作为函数参数, 字符数组的主要内容,如果未能解决你的问题,请参考以下文章