数组(一维,二维)

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;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_50886514/article/details/110872424