前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数组知识点总结

数组知识点总结

作者头像
ImAileen
发布于 2024-01-18 07:15:18
发布于 2024-01-18 07:15:18
13400
代码可运行
举报
运行总次数:0
代码可运行

数组的基本知识

 注意:数组类型是int[常量],数组元素类型才是int

c99标准之前数组的大小只能是常量指定,不能使用变量 c99之后为什么就使用变量呢?---变长数组 变长数组:数组大小可以根据输入的变量决定其大小的数组--如下 int n; scanf("%d",&n);  int array[n];

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//%p-打印地址
#include<stdio.h>
int main()
{
	int num1[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	
	for (i = 1; i < 10; i++)//产生0-9的下标
	{
		printf("&arr[%d]=%p\n",i,& num1[i]);
	}
	return 0;
}

 结论:1.数组在内存中是连续存放的

         2.随着下标的增长,地址是由低到高变化的

一维数组的输入和输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main()
{
	int num1[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int i = 0;
	//输入
	for (i = 0; i <= 9; i++)//产生0-9的下标
	{
		scanf("%d", &num1[i]);
	}
	//输出
	for (i = 1; i < 10; i++)//产生0-9的下标
	{
		printf("%d", num1[i]);
	}
	return 0;
}
数组的输入:输入的是数组元素,输出的的也是元素

 数组个数的计算:sizeof

 ❗注意:计算数组大小如果是类型括号不可以省略

      例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main()
{
	int a = 10;

	//size_t
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(a));
	printf("%d\n", sizeof a);

	return 0;
}

 sizeof 的计算结果是size_t类型的

 size_t 是无符号整型

二维数组

定义:将一维数组作为数组元素 ,二维数组的每一个元素是一维数组

 二维数组的创建:

语法: type arr_name[常量1][常量2]; eg: int arr[3][5];---表示的是三行五列int类型的二维数组,arr是数组名可以自己取 如何进行初始化: 元素按照行的个数进行排放,若有多则换行,若初始化不完全则会补0 如何按照行进行初始化: 因为二维数组的元素是一维数组所以只需要给里面元素加一个{}进行划分即可进行按行输出,如下:

  二维数组的访问

利用下标结合for循环进行遍历,数组的行和列都是从0开始的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main()
{
	int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6} ,{3,4,5,6,7} };
	//printf("%d\n",arr[1][3]);//[]下标引用操作符
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		int j = 0;
		for (j = 0; j < 5; j++)
		{
			printf("%d", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

运行结果:

 二维数组的输入和输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main()
{
	int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6} ,{3,4,5,6,7} };
	//printf("%d\n",arr[1][3]);//[]下标引用操作符
	//输入
	
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		int j = 0;
		for (j = 0; j < 5; j++)
		{
			scanf("%d", &arr[i][j]);
		}
	}
	//输出
	for (i = 0; i < 3; i++)
	{
		int j = 0;
		for (j = 0; j < 5; j++)
		{
			printf("%d", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

输入数据后的运行结果: 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>
int main()
{
	int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6} ,{3,4,5,6,7} };
	//printf("%d\n",arr[1][3]);//[]下标引用操作符
	int i = 0;
	for (i = 0; i < 3; i++)
	{
		int j = 0;
		for (j = 0; j < 5; j++)
		{
			printf("arr[%d][%d]=%p\n",i,j, &arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

运行结果: 

                          arr[0][j]                                   arr[1][j]                                   arr[2][j]

由上运行结果可知,二维数组在内存中也是连续存放的.

arr[0],arr[1],arr[2]可以看成是二维数组的数组名

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数组的基本知识
  • 一维数组的输入和输出:
  •  数组个数的计算:sizeof
  • 二维数组
    • 定义:将一维数组作为数组元素 ,二维数组的每一个元素是一维数组
  •  二维数组的创建:
  •   二维数组的访问
  •  二维数组的输入和输出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档