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

news2024/11/26 16:54:02

    定义变量:
    数据类型 变量 = 值
    数组定义:
    数据类型 数组名[元素个数]={值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]);
	}
}

 输出:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1451117.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java学习第十五节之回顾方法的调用

方法的调用 package oop;public class Demo03 {public static void main(String[] args) {//实际参数和形式参数的类型要对应&#xff01;int add Demo03.add(1,2);System.out.println(add);}public static int add(int a,int b){return ab;}}package oop;//值传递 public cl…

列表推导式与生成表达式的区别

列表推导式与生成式表达式的区别&#xff1a; 列表推导式 res[i for i in range(6)] print(res) 结果&#xff1a; [0, 1, 2, 3, 4, 5] 生成表达式&#xff1a; res(i for i in range(6)) print(res) 结果&#xff1a; <generator object <genexpr> at 0x0000013EAD0…

mathtype公式

Mathtype 手写板 Win11手写板按钮灰色问题解决&#xff1a;在C:\Program Files\Common Files\microsoft shared\ink目录下粘贴mip.exe&#xff0c;C:\Program Files\Common Files\microsoft shared\ink\en-US目录下添加mip.exe.mui提取码y04v 公式识别 配合免费图片公式识别…

【MySQL】:DQL查询

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; MySQL从入门到进阶 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一. DQL1.1 基本语法1.2 基础查询1.3 条件查询1.3 聚合函数 &#x1f324;️ 全篇…

IO流---字节输入输出流,字符输入输出流

IO流概述 IO流&#xff0c;即输入输出流&#xff08;Input Output Stream&#xff09;&#xff0c;是一种抽象概念&#xff0c;用来处理设备之间的数据传输问题&#xff0c;例如文件复制、文件上传、文件下载等。在Java中&#xff0c;对数据的操作通常是通过流的方式进行的&…

qml中解决Page控件头部元素Margin不生效的问题

0、想要的效果 1、问题描述 经测试&#xff1a;Page的头部无法完美的进行左右边距设置&#xff0c;leftMargin可以&#xff0c;rightMargin不可以。。。。 Page {// ...header: Frame {id: headerheight: 70// 必须首先锚定位&#xff0c;然后设置边距才生效padding: 0anchor…

轻松掌握Jenkins执行远程window的Jmeter接口脚本

Windows环境&#xff1a;10.1.2.78 新建与配置节点 【系统管理】—【管理节点】—【新建节点】输入节点名称&#xff0c;勾选“dumb slave”&#xff0c;点击ok 按如上配置&#xff1a; 说明&#xff1a; Name&#xff1a;定义slave的唯一名称标识&#xff0c;可以是任意字…

【动态规划】【记忆化搜索】【状态压缩】1681. 最小不兼容性

作者推荐 【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字 本文涉及知识点 动态规划汇总 状态压缩 记忆化搜索 1681. 最小不兼容性 给你一个整数数组 nums​​​ 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中&#xff0c;使得同一…

函数式编程的技巧

14.1.2 科里化 给出科里化的理论定义之前&#xff0c;让我们先来看一个例子。应用程序通常都会有国际化的需求将一套单位转换到另一套单位是经常碰到的问题。 单位转换通常都会涉及转换因子以及基线调整因子的问题。比如&#xff0c;将摄氏度转换到华氏度的公式是CtoF(x)x*9/…

(2024|ICLR,SVD,软加权正则化,推理时文本嵌入优化)文本到图像扩散模型的图像内容抑制

Get What You Want, Not What You Dont- Image Content Suppression for Text-to-Image Diffusion Models 公和众和号&#xff1a;EDPJ&#xff08;进 Q 交流群&#xff1a;922230617 或加 VX&#xff1a;CV_EDPJ 进 V 交流群&#xff09; 目录 0. 摘要 2. 相关工作 3. 方…

IIC--集成电路总线

目录 一、IIC基础知识 1、设计IIC电路的原因&#xff1a; 2、上拉电阻阻值怎么确定 3、IIC分类 4、IIC协议 二、单片机使用IIC读写数据 1、 IIC发送一个字节数据&#xff1a; 2、IIC读取一个字节数据&#xff1a; 一、IIC基础知识 1、设计IIC电路的原因&#xff1a; (…

【JavaEE】_Fiddler抓包HTTP请求与响应

目录 1. Fiddler简介 2. Fiddler安装步骤 3. 抓包结果举例&#xff08;sogou.com&#xff09; 1. Fiddler简介 1. 要查看HTTP的请求和响应&#xff0c;需要使用抓包工具进行抓包&#xff1b; 抓包即获取网卡上经过的数据并显示出来&#xff0c;常用的抓包工具有wireshark和…

Linux第57步_“linux系统镜像”和“根文件系统”重新打包小结

实时总结是很重要的&#xff0c;时间久了&#xff0c;可能会遗忘。下面是“linux系统镜像”和“根文件系统”重新打包小结。 1、linux系统镜像重新打包 在第1次完成linux系统镜像打包后&#xff0c;再重新打包就很容易了 将“bootfs”重新打包 准备打包文件: 输入“cd /ho…

专业140+总分400+华中科技大学824信号与系统考研经验华科华中大电子信息与通信工程,真题,大纲,参考书。

今年考研落下帷幕&#xff0c;看到有人落寞&#xff0c;有人金榜题名&#xff0c;心里体会五谷杂陈&#xff0c;自己很幸运通过努力上岸华科&#xff0c;初试专业课824信号与系统140&#xff0c;数一130&#xff0c;总分400&#xff0c;对于这个成绩稍微有点超出自己预期&#…

python-产品篇-游戏-象棋

文章目录 代码效果 代码 import pygame import time import constants from button import Button import pieces import computerclass MainGame():window NoneStart_X constants.Start_XStart_Y constants.Start_YLine_Span constants.Line_SpanMax_X Start_X 8 * Lin…

三种输入输出函数

目录 printf函数 scanf函数 getchar函数 putchar函数 gets函数 puts函数 printf函数 当你需要将数据或文本输出到屏幕或其他输出设备时&#xff0c;C语言提供了一个非常有用的函数&#xff0c;即 printf() 函数。它是标准库中定义的函数&#xff0c;用于格式化输出。 pr…

[力扣 Hot100]Day27 合并两个有序链表

题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 出处 思路 简单题&#xff0c;两个指针就能解决。 代码 class Solution { public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {if(!list1)…

蓝桥杯电子类单片机提升三——NE555

目录 单片机资源数据包_2023 一、NE555和定时器工作模式 1.NE555的介绍 2.定时器的计数模式 二、NE555频率读取代码的实现 1.定时器0初始化 2.通过读取TH0和TL0来读取频率 3.通过中断读取频率 三、完整代码演示 通过读取TH0和TL0来读取频率 main.c 通过中断读取频…

多模态基础---BERT

1. BERT简介 BERT用于将一个输入的句子转换为word_embedding&#xff0c;本质上是多个Transformer的Encoder堆叠在一起。 其中单个Transformer Encoder结构如下&#xff1a; BERT-Base采用了12个Transformer Encoder。 BERT-large采用了24个Transformer Encoder。 2. BERT的…

【Algorithms 4】算法(第4版)学习笔记 08 - 3.1 符号表

文章目录 前言参考目录学习笔记1&#xff1a;API1.1&#xff1a;遵循的规则1.2&#xff1a;ST 用例举例1.2.1&#xff1a;行为测试用例1.2.2&#xff1a;性能测试用例2&#xff1a;基本实现2.1&#xff1a;无序链表处理2.2&#xff1a;初级ST实现小结2.3&#xff1a;有序数组的…