c语言数组详解(初学者这一篇就够了,看了不会打我)「建议收藏」

c语言数组详解(初学者这一篇就够了,看了不会打我)「建议收藏」C语言数组详解1.数组:储存数据类型相同的一系列元素例如inta[100];在这里a数组储存100个int型元素,在这里[]这个符号就是告诉计算机a是一个数组。值得一提的是数组的下标访问数组的,数组中的a[0]一般表示你初始化的第一个值。2.初始化数组前面介绍过了,数组可以储存数据类型相同的一系列元素,所以初始化数组必不可少的一步就是告诉计算机这个数组储存的数据类型!…

大家好,又见面了,我是你们的朋友全栈君。

C语言数组详解
重要!!!欢迎对撸代码有兴趣的同学一起交流,大学生也可!!!带你一起写项目!QQ:1324252797
视频讲解:https://space.bilibili.com/440581684

在这里插入图片描述

1.数组:储存数据类型相同的一系列元素

例如 int a[100]; 在这里a数组储存100个int型元素,在这里 [] 这个符号就是告诉计算机 a 是一个数组。

值得一提的是数组的下标访问数组的,数组中的a[0] 一般表示你初始化的第一个值。

2.初始化数组

前面介绍过了,数组可以储存数据类型相同的一系列元素,所以初始化数组必不可少的一步就是告诉计算机这个数组储存的数据类型

int a[10]={ 
   1,33,0,919,3,199} //int型a数组初始化值为1,33,0,919,3,199

那么有同学会问了:那是不是也要告诉系统这个数组储存的元素个数???
在这里插入图片描述
还真的不一定哦!!!

借着这个话题我们来了解一下数组元素不匹配的问题。(举例说明)

数组 状态 出现情况
int a[2] int a[2]={1,2} 元素与 [ ]内 数字相等 a[0]=1 a[1]=2
int a[2] int a[2]={1} 元素与小于[ ]内数字 a[0]=1 a[1]=0
int a[2] int a[2]={1,23,55} 元素与大于[ ]内数字 系统报错

还有一种情况 int a[] , []内为空白这样就没有告诉计算机元素的个数,但是计算机会根据初始化列表确定数组的大小,这样就可以有效防止初始化值的个数超过数组的大小。

在这里插入图片描述

2.1.拓展知识
C99以后,新增了指定初始化器。指定初始化器可以指定初始化第几个元素。如 int a[3]= { [2] = 3} , 把 a[2] 初始化为3,这个比较复杂,仅作为了解。

3.数组元素赋值
以下面代码为例:

#include<stdio.h>
int main(void)
{ 
   
	int a[10];
	for(int i=0;i<10;i++)
	{ 
   
		a[i]=i;
		printf("%2d\n",a[i]);
	}
	return 0;
}

输出结果如下:
在这里插入图片描述
这里有几点值得注意:

  • 这行代码中 a[i]=i,规定数组 [ ] 中不能有变量(未初始化),但这里用了 i 却可以,是因为在这之前 i 已经被初始化一个值。
  • printf(“%2d\n”,a[i]); 这行代码中有很多新手会写成 &a[i] ,往往输出会得到一串奇怪的数字,这是为什么?我们先仔细阅读下面这篇文字。

1.数组名代表数组首元素的地址
2. 数组的地址需要取地址符&才能看到—->(所以你得到的奇怪的数字其实是首元素的地址)
3. 数组首元素的地址值与数组的地址值相同——>(这就是为什么你得到的都是一样的奇怪的数字,这也说明了数组占内存的情况)


重要!!!欢迎对撸代码有兴趣的同学一起交流,大学生也可!!!带你一起写项目致富!QQ:1324252797

创作不易,欢迎点赞支持,关于数组日后继续更新

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157312.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • tcp三次握手题目(tcp三次握手面试题)

    TCP的报头:1.源端口号:表示发送端端口号,字段长为16位。2.目标端口号:表示接收端口号,字段长为16位。3.序列号:表示发送数据的位置,字段长为32位。每发送一次数据,就累加一次该数据字节数的大小。注意:序列号不会从0或1开始,而是在建立连接时由计算机生成的一个随机数作为其初始值,通过SYN包发送给接收端主机。然后再将每转发过去的字节数累加到初始值上表示数据的位置。…

  • 计算机基础三: 二进制减法实现[通俗易懂]

    计算机基础三: 二进制减法实现[通俗易懂]在上一章中了解了如何实现二进制加法,加法是始终从两个加数的最右列向左列进位计算的,而在减法中没有进位,只有借位.253-176=77上面的式子我们不难算出来,但习惯性的思维让我们用借位的方式求值.在不借位的情况下如何实现计算?借位是很麻烦的事情,虽然我们能够实现它,但这意味着额外的开销.我们将用一个小技巧,让我们避开借位从而实现减法.为了避免借位,我们先从百位最大值999中减去减数,而非从原来的被减数中减去减数.999-176=823这个方法称为对9求补

  • 《代码大全》阅读笔记-33-个人性格(personal character)

    《代码大全》阅读笔记-33-个人性格(personal character)

  • java卸载不了_java卸载不了怎么处理?卸载时总出现这个

    java卸载不了_java卸载不了怎么处理?卸载时总出现这个windowsXP在安装有些软件时,会弹出警告框:“不能访问windowsInstaller服务,可能是你在安全模式下运行windows,或者windowsInstaller没有正确安装。请和你的支持人员联系以获得帮助。”的解决方案:windowsinstaller没有正确安装到服务里停掉windowsinstaller服务然后下载InstMsiW.exe右击msi.inf点击安装…

  • JUC多线程:synchronized 锁机制原理

    JUC多线程:synchronized 锁机制原理

  • 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件「建议收藏」

    深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件「建议收藏」在求解最优化问题中,拉格朗日乘子法(LagrangeMultiplier)和KKT(KarushKuhnTucker)条件是两种最常用的方法。在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。  我们这里提到的最优化问题通常是指对于给定的某一函数,求其在指定作用域上的全局最小值(因为最小值与最大值可以很容易转化,即最大值问题可以转化成最小值问题)。提到KKT条件一般会附带的…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号