C语言中的一维数组的创建,使用,及内存中的存储

一维数组的创建和初始化:
数组的创建:数组是一组相同类型的元素的集合.创建方式如下:

type_t	arr_name	[const_n];
//type_t表示数组的元素类型
//const_n是一个常量表达式,用来指定数组的大小

在创建数组时一定要注意,[]中要给一个常量才可以,不能使用变量!例如下面的数组创建的实例:
例1:

int arr1[10];

例2:

int count = 10;
int arr2[count];

例3:

char arr3[10];
float arr4[10];
double arr5[10];

当然,取下标时[]中可以使常量也可以时变量.
例如

int i = 0;
arr[i];	//这表示取数组中第i个元素,即取下标.

在这里要注意数组越界(未定义行为).
数组下标访问越界=>访问了非法内存=>未定义行为.
数组的初始化
数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化).比如:

int arr1[10] = {1,2,3};
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";

数组在创建的时候如果不想指定数组的大小就要初始化.数组元素的个数根据初始化的内容来确定.但是对于下面的代码要区分,内存中如何分配.

char arr[] = "abc";
char arr2[3] = {'a','b','c'};

一维数组的使用
为了进行访问数组的操作,我们要用到[],下标引用操作符.比如:

#include <stdio.h>
#include <stdlib.h>
int main(){
	int arr[10] = { 0 };	//数组初始化
	int size = sizeof(arr) / sizeof(arr[10]);	//计算数组元素的个数
	int i = 0;	//定义一个变量i来作为下标
	for (i = 0; i < 10; ++i){
		arr[i] = i;
	}
	for (i = 0; i < 10; ++i){
		printf("%d ",arr[i]);
	}
	system("pause");
	return 0;
}

数组是使用下标来进行访问的,下标是从0开始;
数组的大小可以通过计算得到.
一维数组在内存中的存储
先来看程序:

#include <stdio.h>
#include <stdlib.h>
int main() {
	int arr[10] = { 0 };
	int i = 0;
	int size = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < size; ++i){
		printf("&arr[%d] = %p\n",i,&arr[i]);
	}
	system("pause");
	return 0;
}

结果如图所示:
在这里插入图片描述
从结果中,我们不难看出数组在内存中是连续存放的.

猜你喜欢

转载自blog.csdn.net/weixin_44781107/article/details/89098371