本篇文章主要记录数组的相关概念
主要包括: 数组-- 一维数组-- 二维数组
———————————————————————————————————————————
****正文开始***
我们知道,我们创建一个变量a,将数字存放在变量a中,我们可以通过这样创建:
int a = 10;int b = 20;int c = 30;
假设现在要创建并存放100个,甚至更多数字,我们还能一一列举创建吗,这显然工作量将变得非常巨大,这时我们就用到了一个可以储存相同类型元素的集合-->数组
type_t arr_name [const_n];
//type_t 是指数组的元素类型
//const_n 是一个常量表达式,用来指定数组的大小
实例:
char ch[10];
int arr[5];
注意:
int n = 10;
int arr2[n];// [] 内应该为常量
c99标准之前不支持使用变量的,只能是常量!
c99中增加了变长数组的概念,允许数组的大小是变量。
而且要求编译器支持C99标准
VS 对C99的支持不够好
例如:
int arr[10] = { 1,2,3,4,5,6,7,8,9.10 };
int arr2[] = {1,2,3,4};
int arr3[5] = {1,2,3,4,5};
char arr4[3] = {'a',98, 'c'};
char arr5[] = {'a','b','c'};
char arr6[] = "abcdef";
不完全初始化: 剩余元素默认初始化为0
int arr[10] = { 1,2,3 };int arr[10] = { 0 };
我们也可以用过监视来查看未被初始化的空间:
我们看以下的代码要区分,内存中如何分配,下面四个输出的结果分别是什么?
char arr1[] = { 'a','b','c' };printf("%dn", sizeof(arr1));printf("%dn", strlen(arr1));
char arr2[] = { "abc" };printf("%dn", sizeof(arr2));printf("%dn", strlen(arr2));
在代码中我们发现了用到了strlen库函数和sizeof操作符,我们先对他们俩做一个区分
strlen 和 sizeof:
*****strlen: 是一个库函数,计算的是字符串的长度,只能针对字符串 关注的是字符串是否有 '