C语言学习(days09)
二维数组的定义与特性
二维数组的声明格式为:
类型说明符 数组名[表达式1][表达式2];
[下标1]
表示行索引,[下标2]
表示列索引。
二维数组可视为由多个一维数组组成,a[0]
表示第0行的首地址(即一维数组地址)a[0][0]表示第0的第一个元素
。
初始化规则
行数可省略,编译器根据初始值自动推导:
int a[][3] = {{1, 2, 3}, {4, 5, 6}}; // 合法
列数不可省略,否则编译错误:
int a[2][] = {{1, 2}, {3, 4}}; // 错误
计算行列数
行数:总字节数除以单行字节数:
int rows = sizeof(a) / sizeof(a[0]);
列数:单行字节数除以元素字节数:
int cols = sizeof(a[0]) / sizeof(a[0][0]);
二维字符数组
用于存储字符串集合,每行代表一个字符串:
char strs[][10] = {"hello", "world"};
int rows = sizeof(s) / sizeof(s[0]);
函数的基本概念
函数用于模块化代码,降低耦合性,提高复用性。
定义格式
类型标识符 函数名(形式参数表列) {声明部分;语句部分;
}
若未指定返回类型,默认为int
。
函数不可嵌套定义,但可嵌套调用。
断言(assert)
用于调试阶段检查条件,若条件为假则终止程序:
#include <assert.h>
int x = 10;
assert(x == 10); // 继续执行
assert(x == 5); // 终止程序
关键注意事项
函数返回值不能是数组,但可返回数组地址。