C语言一维数组

一维数组

  • 一维数组的创建
  • 一维数组的初始化
  • 一维数组的使用
  • 一维数组在内存中的存储

一维数组的创建

数组就是一组相同类型元素的集合
数组的创建:

int arr [10]
int 是数组类型
arr  是数组名称
[10]  是数组的大小

数组也可以创建不同的类型
例如:

int arr[10];
int arr[8+2];
char ch[10];
double n[10];

在C99标准之前,数组的大小都必须是常量或者常量表达式
在C99之后,数组的大小可以是变量,这是为了支持变长数组
那什么是变长数组呢?
例如:
下面例子只支持在C99标准下执行

int n = 10;
scanf("%d"&n);
int arr[n];

一维数组的初始化

数组的初始化是指在创建数组的时候给数组赋值,也叫初始化
数组在创建的时候如果想不指定数组的确定的大小就得初始化,那数组的元素个数根据初始化的内容来确定。

例如:

int arr[10] = {"1,2,3,4,5,6,7,8,9,10"};
int arr[ ] = {"1,2,3,4,5,6,7,8,9,10"};

char ch[3] = {'a','b','c'};
char ch[ ] = {'a'.'b',98};
char ch [] = {"abc"};

数组不完全初始化
什么是数组不完全初始化
C语言一维数组_第1张图片

只给前面几个赋值,这叫数组不完全初始化,剩余的元素默认为0
注意:
下面的代码要区分,内存中如何分配

char ch[10] = {'a','b','c'}; 
在内存存储的是: a b c 0 0 0 0 0 0 0
初始化是 3char ch2[10] = "abc";
内存存储的是: a b c \0  0 0 0 0 0 0
初始化是  4

一维数组的使用

数组的使用我们之前介绍了一个操作符: [ ] ,这是下标引用操作符。它其实就数组访问的操作符
数组是使用下标来访问的,下标是从0开始。
数组的大小是可以通过计算得到

C语言规定:数组的每个元素都有一个下标,下标是从0开始的
比如:

int main()
{
    int arr[10] = { 1,2,3,4,5,6,7,8,9}
        数组的下标: 0 1 2 3 4 5 6 7 8
}
----------------------------------------------------------
数组的使用
int main()
{
    int a[10] = { 1,2,3,4,5,6,7,8,9 };  数组的创建
    int i = 0;
    int sz = sizeof(arr) / sizeof(arr[0]);   计算数组的大小
    while (i < sz)
    {
        printf("%d ", a[i]); 打印数组下标为 i 的元素
        i++;
    }
    return 0;
}

一维数组在内存中的存储

数组在内存中是以十六进制的形式存储的
从图片就可以得出:数组在内存中是连续存放的,随着数组下标的增长,地址也是从低到高的

C语言一维数组_第2张图片

你可能感兴趣的