数组(一维,二维)

本文详细介绍了C语言中一维和二维数组的创建、初始化方法,包括静态初始化和动态初始化。讲解了数组在内存中连续存储的特性,并通过示例展示了数组元素的访问。此外,还探讨了数组作为函数参数时的传递机制,指出数组名实际上代表首元素地址,以及使用`sizeof`运算符计算数组大小的注意事项。
摘要由CSDN通过智能技术生成

1.一维数组的创建和初始化

(1)一维数组的创建

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

int arr[10];
#define N 10
int main()
{
	int arr1[N];
	return 0;
}

注: 创建数组,[ ]中要给一个常量,不能给变量也不能为空

(2)数组的初始化

数组的初始化:是指在创建数组的同时给数组的内容一些合理的初始值(初始化)

int arr[5]; //随机值
int arr1[5] = { 1, 2 }; //后面三个默认是0
int arr2[5] = { 1, 2,3,4,5};
int arr3[] = { 1, 2, 3, 4, 5 }; //初始给几个,默认就会给初始化多大

字符数组的特殊初始化方式

char str[6] = { 'a', 'b', 'c' };
char str[6] = { "abc" };
char str[] = { "abcd" };

例:

#include<stdio.h>
int main()
{
	int arr[] = { 1, 2, 3, 4, 5 };
	char str[6] = { "abc" };
	int arr1[10] = { 0 };
	for (int i = 0; i < 5; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
	for (int i = 0; i < 6; i++)
	{
		printf("%c ", str[i]);
	}
	printf("\n");
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", arr1[i]);
	}
	printf("\n");
	return 0;
}

在这里插入图片描述
注: 数组的下标是从0开始的

2.一位数组在内存中的存储

在这里插入图片描述
注: 数组在内存中是连续存放的

3.二维数组的创建和初始化

(1)二维数组的创建

二维数组中第一个[ ]中是行,第二个[ ]中是列

int arr[3][4];
char arr[3][4];
double arr[3][4];

注: • 行和列的[ ]中都只能用常量
        • 行可以省略,列不能省略

(2)二维数组的初始化

#include<stdio.h>
int main()
{
	int arr[3][4] = { { 1, 2 }, { 3, 4 } };
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

在这里插入图片描述

#include<stdio.h>
int main()
{
	int arr[3][4] = {1,2,3,4};
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 4; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

在这里插入图片描述
注: • 只初始化一部分其余默认给0
         •  一个{ }代表一行

3.数组作为函数的参数

C语言不允许传数组,传过去的是首元素的地址
C语言极度追求效率,函数参数写成int a[10] / int a[]
等形式时,a还是指针(代表首元素的地址),不是数组

void BubbleSort(int* a)
void BubbleSort(int a[6])
void BubbleSort(int a[])

这三个是数组的首元素的地址

(1)数组名代表首元素地址{(2)中特里除外}

#include<stdio.h>
int main()
{
	int arr[5] = { 1, 2, 3, 4, 5 };
	//arr数组名,代表首元素的地址
	printf("%p\n",arr);
	printf("%p\n",&arr[0]);
	return 0;
}

在这里插入图片描述

(2)特例sizeof(数组名),计算整个数组大小,sizeof内部单独放一个数组名,数组名表示整个数组

#include<stdio.h>
int main()
{
	int arr[5] = { 1, 2, 3, 4, 5 };
	printf("%d\n", sizeof(arr));
	return 0;
}

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值