C语言学习day14:数组定义和使用

    定义变量:
    数据类型 变量 = 值
    数组定义:
    数据类型 数组名[元素个数]={值1,值2,值3}

代码:

int main()
{
	//定义变量
	//数据类型 变量 = 值
	//数组定义
	//数据类型 数组名[元素个数]={值1,值2,值3}

	//数组下标 数组名[小标]
	//数组下标是从0开始 到数组元素个数-1
	int arr1[10] = { 1,2,3,4,5,6,7,8,9,10 };
	for (int i = 0; i < 10; i++)
	{
		printf("%d\n", arr1[i]);
	}
	system("pause");
	return EXIT_SUCCESS;
}

也可以换个方法写:

int main()
{
	//定义变量
	//数据类型 变量 = 值
	//数组定义
	//数据类型 数组名[元素个数]={值1,值2,值3}

	//数组下标 数组名[小标]
	//数组下标是从0开始 到数组元素个数-1

	for (int i = 0; i < 10; i++)
	{
		int arr2[] = { 1,2,3,4,5,6,7,8,9,10 };
		printf("%d\n", arr2[i]);
	}
	system("pause");
	return EXIT_SUCCESS;
}

输出都是:

数组元素参与计算

代码:

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	//数组元素参与计算
	arr[3] = arr[5];
	arr[2] = arr[3];

	for (int i = 0; i < 10; i++)
	{
		printf("%d\n", arr[i]);
	}
}

 输出:

接下来我们看看数组在内存中的地址,它是怎样存放的;究竟是一个一个存还是一串全部存进去,究竟是连续性的还是不连续性的

代码:

int main()
{
	//数组在内存中的存储方式和大小
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	//查看数组下标为0的地址
	printf("%p\n", &arr[0]);//0000002491FBF748
	printf("%p\n",&arr[1]);//0000002491FBF74C
	
}

 输出:

内存中是以16进制来存储的,同时我们定义的数组是int类型,4个字节大小;

通过计算我们发现,它是连续的

由此我们得出结论:

数组是在内存中连续的相同类型的变量空间 

画一个图解释:

 同时,数组名是一个常量,指向数组首地址的常量

代码:

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("%p\n", &arr[0]);//0000002491FBF748

	printf("%p\n", arr);
}

输出:

接下来我们说说数组在内存中占的大小

代码:

int main()
{
	//数组在内存中的存储方式和大小
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

	printf("数组在内存中占的大小=%d\n", sizeof(arr));
}

 输出:

可以看见我们的数组在内存中占了40个字节大小,因为sizeof的单位是int

我们的数组一共有10个值,每个值占了4个字节,因此 数组在内存中占40字节大小

因此我们可以得出结论:数组在内存中占的大小=数组类型(int类型=4字节)*元素个数

接下来我们验证一下我们得出的结论

代码:

int main()
{
	//数组在内存中的存储方式和大小
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	printf("数组在内存中占的大小=%d\n", sizeof(arr));
	printf("数组元素大小=%d\n", sizeof(arr[0]));
}

 输出:

 开始计算(代码):

int main()
{
	//数组在内存中的存储方式和大小
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

	printf("数组在内存中占的大小=%d\n", sizeof(arr));
	printf("数组元素大小=%d\n", sizeof(arr[0]));
	printf("数组元素个数=%d\n", sizeof(arr) / sizeof(arr[0]));
}

输出结果:

接下来讲解求这些的作用:

其中之一:循环

代码:

int main()
{
	//数组在内存中的存储方式和大小
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

	for (int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++)
	{
		printf("%d\n", arr[i]);
	}
}

 输出:

 

相关推荐

  1. C语言学习笔记day14

    2024-02-16 18:46:01       15 阅读
  2. C语言学习笔记day10

    2024-02-16 18:46:01       16 阅读
  3. C语言学习笔记day11

    2024-02-16 18:46:01       22 阅读
  4. C语言学习笔记day12

    2024-02-16 18:46:01       16 阅读
  5. C语言学习笔记day13

    2024-02-16 18:46:01       14 阅读
  6. C语言学习笔记day15

    2024-02-16 18:46:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-16 18:46:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-16 18:46:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-16 18:46:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-16 18:46:01       20 阅读

热门阅读

  1. 应急响应实战笔记02日志分析篇(2)

    2024-02-16 18:46:01       31 阅读
  2. MySQL双写机制

    2024-02-16 18:46:01       40 阅读
  3. coredns 状态为running但not ready

    2024-02-16 18:46:01       28 阅读
  4. Acwing---869. 试除法求约数

    2024-02-16 18:46:01       28 阅读
  5. Leetcode-657. 机器人能否返回原点

    2024-02-16 18:46:01       32 阅读
  6. vue3 codemirror yaml文件编辑器插件

    2024-02-16 18:46:01       28 阅读
  7. Leetcode With Golang 二叉树 part1

    2024-02-16 18:46:01       32 阅读
  8. 50. C++ 指针函数与函数指针

    2024-02-16 18:46:01       27 阅读