文章目录
一、前言
- 本人是一名小白,这一篇是记录我C语言学习中的数组的所学所得,仅为简单的认识下C语言中的各个知识。
二、一维数组的的创建和初始化
1、数组的创建
- 数组是一组相同类型元素的集合。
- 数组的创建方式
type_t arr_name [const_n];
//type_t 是指数组的元素类型
//const_n 是一个常量表达式,用来指定数组的大小
- 实例
//整形
int arr1[10];
//字符类型
char arr2[10];
//浮点数
float arr3[10];
- 注:数组创建,在C99标准之前, [] 中要给一个常量才可以,不能使用变量。在C99标准支持了变长数
组的概念,数组的大小可以使用变量指定,但是数组不能初始化。
int n = 5;
int arr4[n];
报错
- 说明VS不支持C99中的变长数组,在其他编译器中可能可以。
2、数组的初始化
- 数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。
//创建的同时给数组一些值,这叫初始化
int arr[10] = {
1,2,3,4,5,6,7,8,9,10};//完全初始化
int arr2[10] = {
1,2,3 };//不完全初始化,剩余的元素默认初始化为0,字符串类型为\0
int arr3[] = {
1,2,3,4,5,6,7,8,9,10 };//这里没有指定数组元素个数,编译会根据初始化的内容来确定数组的元素个数
- 区分
int arr4[] = {
1,2,3 };//3个元素
int arr5[10] = {
1,2,3 };//10个元素
char arr6[3] = {
'a', 'b', 'c' };
char arr7[] = {
'a', 'b', 'c' };
//以上两个数组一样
char arr10[10] = "abc";//10个元素
char arr11[] = "abc";//4个元素
- 数组在创建的时候如果想不指定数组的确定的大小就得初始化。数组的元素个数根据初始化的内容来确
定。 - 但是对于下面的代码要区分,内存中如何分配。
char arr8[] = "abc";//4个元素,隐藏了'\0'
char arr9[] = {
'a', 'b', 'c' };//3个元素
printf("%s\n", arr8)