网站首页 > 技术文章 正文
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. 数组首元素的地址值与数组的地址值相同------>(这就是为什么你得到的都是一样的奇怪的数字,这也说明了数组占内存的情况。
猜你喜欢
- 2024-09-21 你完全掌握了C语言数据类型——数组了吗?带你了解二维数组!
- 2024-09-21 C语言结构体,如何定义结构体数组?linux C第62讲
- 2024-09-21 C语言 一维数组的定义和使用(c语言中的一维数组的定义)
- 2024-09-21 「初识C语言」二维数组(c语言二维数组写法)
- 2024-09-21 【C语言】(4)数组(c语言中数组的用法)
- 2024-09-21 【C语言】数组(c语言数组和指针的关系)
- 2024-09-21 一文解读清楚C语言动态数组(c语言如何使用动态数组)
- 2024-09-21 C/C++编程知识分享:C++ 手把手教你实现可变长的数组
- 2024-09-21 什么是 Python 中的数组,它与列表有何不同?
- 2024-09-21 C语言系列_4:一文让你明白C语言数组
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)