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

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

代码:

int main()
{//定义变量//数据类型 变量 = 值//数组定义//数据类型 数组名[元素个数]={值1,值2,值3}//数组下标 数组名[小标]//数组下标是从0开始 到数组元素个数-1int 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开始 到数组元素个数-1for (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]);//0000002491FBF748printf("%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]);//0000002491FBF748printf("%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.hqwc.cn/news/471600.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Redis快速入门】Redis三种集群搭建配置(主从集群、哨兵集群、分片集群)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

简易绘图软件(水一期)

哈哈&#xff01; 1、编写代码&#xff1a; 代码&#xff1a; main: #include <graphics.h> #include <music.h> #include <heker.h> #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )using…

Linux 幻兽帕鲁服务器怎么上传存档文件?

通过控制台远程连接到 Linux 服务器后&#xff0c;你可以打开文件树&#xff0c;然后找到幻兽帕鲁存档位置&#xff0c;将存档压缩包上传到 Pal 目录中。 记得替换存档前要先停止服务。 2. 然后将 Saved.tar 文件解压&#xff0c;并完全替换新服务器上的 Saved 存档目录即可。 …

python速成(2)、

​​​​​​​

【数据库】哪些操作会导致索引失效

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;数据库 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 结语 我的其他博客 前言 在数据库管理中&#xff0c;索引的有效性对于查询性能至关重要。然而&#xff0c;索引可能会因为各种操…

P1649 Obstacle Course S(dfs卡方向数组/bfs)

传送门https://www.luogu.com.cn/problem/P1649 开始拿到题&#xff0c;发现数据范围是100&#xff0c;于是我尝试用dfs一做&#xff0c;写完后发现是90分&#xff0c;TLE一个点。于是乎观看题解&#xff08;我还以为能剪枝掉&#xff09;&#xff0c;发现改一下遍历方向就能过…

积分(二)——复化Simpson(C++)

前言 前言 simpson积分 simpson积分公式 ∫ a b f ( x ) d x ≈ b − a 6 [ f ( a ) f ( b ) 4 f ( a b 2 ) ] \int_{a}^{b}f(x)dx \approx \frac{b-a}{6}[f(a)f(b)4f(\frac{ab}{2})] ∫ab​f(x)dx≈6b−a​[f(a)f(b)4f(2ab​)] 与梯形积分类似&#xff0c;当区间[a,b]较…

AI大模型学习笔记之五:监督学习--数据如何驱动决策

监督学习&#xff0c;又称为监督式机器学习&#xff0c;是机器学习和人工智能领域的一个重要分支。 其基本原理是利用带有标签的数据集来训练算法&#xff0c;以实现精确分类数据或预测结果的目标。 在监督学习中&#xff0c;通过将数据输入模型&#xff0c;并不断调整数据权…

【知识整理】产研中心岗位评定标准之大数据岗位

为贯彻执行集团数字化转型的需要,该知识库将公示集团组织内各产研团队不同角色成员的职务“职级”岗位的评定标准; 一、定级定档目的 通过对公司现有岗位及相应岗位员工的工作能力、工作水平进行客观公正评定,确定各岗位的等级及同等级岗位员工对应的档级,从而为员工以后的晋升…

CSS篇--transform

CSS篇–transform 使用transform属性实现元素的位移、旋转、缩放等效果 位移 // 语法 transform:translate(水平移动距离&#xff0c;垂直移动距离) translate() 如果只给一个值&#xff0c;表示x轴方法移动距离 单独设置某个方向的移动距离&#xff1a;translateX() transla…

bpmn-js 事件总线处理

bpmn-js中使用EventBus作为事件的处理句柄&#xff0c;EventBus的使用和我们常规使用的事件总线没啥大的区别&#xff0c;其源码位于&#xff1a;/diagram-js/lib/core/EventBus.js &#xff08;bpmn-js使用diagram-js实现流程图的web端绘制呈现工具&#xff09;。 EventBus使用…

我的NPI项目之Android USB 系列(一) - USB的发展历史

设计目的 USB was designed to standardize the connection of peripherals to personal computers, both to exchange data and to supply electric power. 一个是为了标准化电脑连接外设的方法。 能够支持电脑和外设的数据交互和&#xff08;对外&#xff09;供电。 目前已…