C语言———数组

本章重点:

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

2.二维数组的使用

3.一维数组在内存中的储存

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

5.二维数组的使用

6.二维数组在内存中的储存

7.数组作为函数参数

8.数组的应用实例1:三子棋

9.数组的应用实例2:扫雷游戏

正文开始

一维数组的创建和初始化

数组的创建

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

type_t         arr_name         [const_n];

//type_t     是指数组的元素类型

//const_n    是一个常量表达式,用来指定数组的大小

注:重点:

数组常见,【】中要给一个常量才可以,不能使用变量,

数组的初始化

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

数组中没有被初始化的数是0。

sizeof可以用来计算数组所占空间的大小;

strlen可以求字符串的长度,在遇见“\0”时停止,不加“\0”;

sizeof和siaeof没有什么联系;

strlen只能用来求字符串的长度;

sizeof可以计算变量、数组、类型的大小,这个大小的单位时字节;

int 型通常占4个字节,char型通常占一个字节。

strlen是库函数,在使用时要引用头文件,但是sizeof是一个操作符,在使用时不需要引用头文件。

一维数组的使用:

对于数组的使用我们之前介绍了一个操作符:【】,下标引用操作符。

1.数组是使用下标来访问的,下标是从0开始的。

2.数组的大小是可以通过计算得出的。

例如:

#include<stdio.h>
int main()
{
    int arr[10];
    int sz=sizeof(arr)/siazof(arr[0]);
    return 0;
}

一维数组在内存中的储存:

随着数组下标的增长,元素的地址也在有规律的递增。由此可得出结论:数组在内存中是连续存放的。

二维数组的创建和初始化

二维数组的创建

int arr[][];
//第一个方框中是代表行,第二个方框中是代表列。

二维数组的初始化:

当二维数组不完全初始化时,后面默认的数为零。

二维数组中行可以省略,但是列不能省略。

二维数组的使用

数组作为函数参数:

往往我们在写代码的时候,会将数组作为参数传给某一个函数,例如:我要实现一个冒泡排序(这里要讲算法思想)函数将一个函数整型数组排序。那我们将会这样使用该函数:

冒泡排序函数的错误设计

冒泡排序的核心思想:

两两相邻的元素对他进行一个比较。

//冒泡排序
#include<stdio.h>
void hanshu_(int se,int arr1[])
{
	int a, b,temp;
	int c = 1;
	for (a = 0; a <se-1; a++)
	{
		for (b = 0; b < se-1-a; b++)
		{
			if (arr1[b] > arr1[b+1])
			{
				temp = arr1[b];
				arr1[b] = arr1[b+1];
				arr1[b+1] = temp;
				c=0;
			}
		}
		if (c == 1);
		break;
	}
	int i;
	for (i = 0; i <= se - 1; i++)
	{
		printf("%d", arr1[i]);
	}
}
int main()
{
	int arr[] = {0,1,2,3,4,5,6,7,8,9};//对这个数组里面的数字进行升序排列
	int se = sizeof(arr)/sizeof(arr[0]);
	printf("对arr数组里面的数字进行升序排列我们的到了一串新的数组");
	hanshu_(se,arr);
	return 0;
}

数组名是什么:

通常情况下数组名是代表首元素的地址,但是存在两个例外条件:

siaeof(数组名),此时此此刻数组名代表整个数组,siaeof计算的是整个数组的大小,单位是字节。

&数组名,数组名代表的是整个数组,&数组名,取出的是整个数组的地址。

数组的地址和数组首元素地址的区别是什么:

数组的地址和数组首元素的地址在值上面是完全一样的,但是意义完全不一样。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值