栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言之数组

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言之数组

目录

一维数组的创建和初始化

一维数组的创建方式

数组的初始化

一维数组的使用

一维数组在内存中的存储

二维数组的创建和初始化

二维数组的创建

 初始化——创建的同时给其赋值

二维数组的使用

二维数组在数组中的储存

数组作为函数参数

一维数组的创建和初始化

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

一维数组的创建方式

//数组初始化实例
	int arr1[3];
	char arr2[8];
	double arr3[20];

注意:数组创建,[]中要给一个常量才可以,不能使用变量

数组的初始化

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

	//完全初始化
	int arr1[10] = {1,2,3,4,5,6,7,8,9,10};
	//不完全初始化(数组长度为10,后5个补0)
	int arr2[10] = { 1,2,3,4,5 };
	//根据初始化内容确定数组长度的初始化
	int arr3[] = {1,2,3,4,5,6};//数组长度为6
	//关于字符数组的第一种写法
	char ch1[5] = "bit";//不完全初始化,后面用''补充
	char ch2[] = "bit";//数组长度为3
	//关于字符数组的第二种写法
	char ch3[] = { 'b','i','t' };//一共3个元素
	char ch4[6] = { 'b','i','t' };//一共6个元素,其他为''

一维数组的使用

[]:下标引用操作符,通过下标来访问数组中的元素,数组下标从0开始

#include 
int main() {
	int arr1[10] = { 0 };
	arr1[4] = 5;//将数组第5个数改为5
	int sz = sizeof(arr1) / sizeof(arr1[0]);
	//遍历数组
	int i = 0;
	for (i = 0; i < sz; i++) {
		printf("%dn", arr1[i]);
	}
	return 1;
}

一维数组在内存中的存储
  • 一维数组的每个元素在内存中是连续存放的
  • 随着数组下标的增长,地址由低到高变化
  • 数组名是首元素的地址

二维数组的创建和初始化

二维数组的创建

 初始化——创建的同时给其赋值
	//完全初始化
	int arr1[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
	//不完全初始化——后面补0
	int arr2[3][4] = {1,2,3,4,5,6,7};
	//第二种方法
	int arr3[3][4] = { {1,2},{3,4},{4,5} };//这里不完全初始化,后两列补0
	//第二种根据后面元素来确定行数,但一行有几个元素不能省略
	int arr3[][4] = { {1,2},{3,4},{4,5} };

二维数组的使用

二维数组的操作也是通过下标[][]

#include 
int main() {
	//遍历二维数组
	int arr1[][4] = { {1,2},{3,4},{4,5} };
	int i = 0;
	int j = 0;
	for (i = 0; i < 3; i++) {
		for (j = 0; j < 4; j++) {
			printf("%d ", arr1[i][j]);
		}
		printf("n");
	}
	return 1;
}

二维数组在数组中的储存
  • 二维数组在内存中也是连续存放的(一行内部连续,换行也是连续)
  • 二维数组在内存中存放就是一个很长的一维数组
#include 
int main() {
	//遍历二维数组
	int arr1[][4] = { {1,2},{3,4},{4,5} };
	int i = 0;
	int* p = &arr1[0][0];
	for (i = 0; i < 12; i++) {
		printf("%d ", *p);
		p++;
	}
	return 1;
}

数组作为函数参数

数组在传参的时候传递的是数组首元素的地址

数组名是数组首元素的地址但是有2个例外

  • sizeof(数组名)——数组名表示整个数组计算的是整个数组的大小单位是字节
  • &数组名——数组名表示整个数组,取出的是整个数组的地址
#include 
int main() {
	int arr[10] = { 0 };
	printf("%pn", arr);
	printf("%pn", arr+1);//差4
	printf("%pn", &arr);
	printf("%pn", &arr+1);//差40
	return 1;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号