1、什么是数组

若将有限个类型相同的变量的集合命名,那么这个名称为数组名。

数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 [1]  这些无序排列的同类数据元素的集合称为数组。

2、声明数组

数组的声明并不是声明一个个单独的变量,比如number0,bumber1……,而是声明一个数组,比如numbers,然后使用number[0],number[1]……来单独代表一个个单独的变量。(数组中的元素是可以通过索引来进行访问的)。

(所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引,数组的最后一个索引是数组的总大小减去 1)

c语言声明数组,需要指明元素的类型和元素的数量,一维数组的所示如下:

type arrayName [arraySize];

arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C 数据类型。

例如:

int a[10]; 说明整型数组a,有10个元素。若要表示第10个元素,则使用a[9]。第一个则是a[0]。

float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。

char ch[20]; 说明字符数组ch,有20个元素。

3、数组的初始化(以char类型的数组为例)

3.1  初始化时候不指明数组的大小,则数组的大小则为初始化时候元素的个数

#include <stdio.h>
int main()
{char cBufLen[] = {'a', 'b', 'c'};printf("sizeof(cBufLen)=%d\n", sizeof(cBufLen)); //返回的值是3,因为有三个元素
}

3.2 初始化时候,指明数组的大小,大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。

     1   #include <stdio.h>2   int main()3 {4      char cLessThanBuf[4] = {'a', 'b', 'c'};5     char cEqualThanBuf[4] = {'a', 'b', 'c', 'd'};6     char cGreatThanBuf[4] = {'a', 'b', 'c', 'd', 'e'};7  }/*******************以下为出错显示*********************/
getDataFromBuf.c: 在函数‘main’中:
getDataFromBuf.c:7:2: 警告:数组初始值设定项中有多余的元素 [默认启用]char cGreatThanBuf[4] = {'a', 'b', 'c', 'd', 'e'};
/*****************************************************/

3.3 给char类型数组赋值的方式有:

char cBufOne[4] = {'a', 'b', 'c', 'd'};
char cBufTwo[4] = {"abcd"};

4、访问数组

数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。例如:数组名[元素索引值]

为数组中某个元素赋值。直接把值赋给数组元素即可。

#include <stdio.h>
#include <string.h>int main()
{char cBufOne[4] = {'a', 'b', 'c', 'd'};printf("cBufOne[0]=%d cBufOne[1]=%d\n", cBufOne[0],cBufOne[1]);    cBufOne[1] = 'e';  //左值为数组元素的表示方式 //此行代码作用为数组中的某个元素赋值printf("cBufOne[0]=%d cBufOne[1]=%d\n", cBufOne[0],cBufOne[1]); printf("%d %d\n", cBufOne[0],cBufOne[1]);
}/***********************以下为编译结果显示内容*********************/
[root@localhost tool]# ./getDataFromBuf
cBufOne[0]=97 cBufOne[1]=98
cBufOne[0]=97 cBufOne[1]=101
/****************************************************************/

上面的语句将把数组中第 10 个元素的值赋给 salary 变量。下面的实例使用了上述的三个概念,即,声明数组、数组赋值、访问数组:

5、来个示例。声明一个大小为4的char类型数组,给数组赋值,并访问数组。

/******************************************Function:声明一个大小为4的char类型数组,给数组赋值,并访问数组*Parameter:*Return Value:*Remarks:* ******************************************/#include <stdio.h>int main()
{/*声明数组*/char cBuf[4];  /*cBuf是一个包含4 个char类型的数组*/int i = 0;int j = 0;/*初始化数组*/for(i = 0; i < 4; i++){cBuf[i] = 'a' + i; /* 设置元素i为 i + 'a'*/}/*访问数组元素*/for(j = 0; j < 4; j++){printf("cBuf[%d] = %d\n", j, cBuf[j]);}return 0;
}/**************************结果显示如下**************/
[root@localhost tool]# ./array
cBuf[0] = 97
cBuf[1] = 98
cBuf[2] = 99
cBuf[3] = 100
/***************************************************/

6、探讨数组初始化时候,大括号 { } 之间的值的 小于 数组声明时在方括号 [ ] 中指定的元素数目,其余值赋值为什么?

#include <stdio.h>int main()
{/*声明数组 and 初始化数组*/char j = 0;char cBuf[4] = {"ab"};/*访问数组元素*/for(j = 0; j < 4; j++){printf("cBuf[%d] = %d\n", j, cBuf[j]);}return 0;
}/*************以下为结果显示******************/
[root@localhost tool]# ./array
cBuf[0] = 97
cBuf[1] = 98
cBuf[2] = 0
cBuf[3] = 0
/******************************************///解释说明:查看ascii码发现,没被直接复制的数组元素被赋值为'\0'Oct   Dec   Hex   Char                  ────────────────────────────────000   0     00    NUL '\0'                

C语言 —— 数组(数组的声明、初始化、访问)与字符串指针相关推荐

  1. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  2. c语言程序设计 第三版 哈工大,C语言程序设计_哈工大(3):字符串指针.pdf

    圳 职 业 技 术 学 院Shenzhen Polytechnic 七单元(3):字符串指针 教学内容 字符串的指针和指向字符串的指针变量 教学目标 应知 字符串可以用字符数组和字符指针表示 应会 用 ...

  3. 【C 语言】数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )

    文章目录 前言 一.数组符号 [] 与 指针 * 符号 使用效果 基本等价 二.数组首地址 与 指针 本质区别 前言 参考 [C 语言]指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方 ...

  4. C 温故知新 之 指针:数组指针、字符串指针、函数指针

    一.数组指针  1.指向数组元素的指针 1.定义:还是那句话通俗的说指针就是地址 数组指针     :数组的起始地址 数组元素指针:数组元素的地址 2.定义一个指向数组元素的指针变量的方法,与之前介绍 ...

  5. c语言 数组初始化非零,C语言与单机-28-数组初始化

    我们定义一个数组,只是在内存中申请了一个连续的地址空间.空间大小是sizeof(data_type)*number.  dat_type指的是数组元素的数据节本类型,sizeof是C语言的运算符,可以 ...

  6. C语言 一维数组、二维数组的创初始化、使用和存储

    目录 数组 一维数组 一维数组的创建和初始化 一维数组的定义 一维数组的初始化 完全初始化 不完全初始化 一维数组的使用 一维数组的使用代码示例 一维数组在内存中的存储 代码示例 二维数组 二维数组的 ...

  7. c#数组赋初值_JavaScript数组的声明、访问和遍历方法

    1.数组的概念:数组就是使用单独的变量名来存储一系列的值.当你要存储100个相同概念的数据时,比如学生信息,如果要创建100个变量是不现实的,使用数组变量,就可以存储这100个数据.JavaScrip ...

  8. C语言一维数组、二维数组、结构体的初始化

    C语言数组的初始化表示方法 一.C语言一维数组初始化: (1)在定义数组时对数组元素赋以初值.如: static int a[10]={0,1,2,3,4,5,6,7,8,9}; 经过上面的定义和初始 ...

  9. go 声明二维数组_一篇文章了解Go语言中数组Arrays的使用内幕

    概述 与其他编程语言类似,Go语言也有数组array.Go语言中,数组的行为和其他语言没有什么不同.Go语言中还有一个叫做切片slice的东西,它就像是对数组的引用.在本文中,我们将只研究数组. 定义 ...

最新文章

  1. 仅用CPU就能跑到1000FPS,这是开源的C++跨平台人脸检测项目
  2. HashMap.values().addAll()异常
  3. 把button伪装成超链接
  4. 深入理解分布式技术 - 负载均衡实现之一致性哈希算法
  5. sqlserver中65535_sqlserver中 varchar 最大长度是多少?
  6. linux查看fifo内容,linux 有名管道(FIFO)
  7. NLog自定义Layout Renderer
  8. EF性能优化-有人说EF性能低,我想说:EF确实不如ADO.NET
  9. w ndows10怎么联网,windows10所有uwp应用都无法联网的两种解决方法
  10. 二下语文书电子课本_沪教版牛津英语小学五年级上册高清电子课本教材书(三年级起点)...
  11. 关于STM32 串口二、串口三串口调试助手无法显示的问题
  12. 时序逻辑电路的基础知识(结合Verilog)
  13. Protel DXP 2004 SP3_SP4 注册机
  14. css实现接地气的checkbox框
  15. 05、汇编语言和汇编软件
  16. 盛年不重来、一日难再晨
  17. xcode没有Products的解决方法
  18. 新近出现的恶意软件:Visal.B
  19. 百度安卓开发一二面面经
  20. 双下巴的瘦脸运动方法 - 健康程序员,至尚生活!

热门文章

  1. SpringCloud-config分布式配置中心
  2. Ubuntu和windows系统下安装odoo16 社区版和企业版附带安装视频
  3. https双向加密认证
  4. mobaxterm在线实时查看日志-命令
  5. 软件构造复习小结(2)——设计规约(Specification)
  6. 为什么国内搜索不到国外服务器网站?
  7. [附源码]Python计算机毕业设计东北鹿产品售卖网站Django(程序+LW)
  8. 装VMware后在主机找不到VMnet1和VMnet8问题(巨详细已解决)
  9. java google map_java如何通过google map api实现地址解析
  10. VPP二层接口,不是翻墙