C语言的数组基础,C语言基础-数组

一、数组(一维数组)

什么是数组?

数组是一组有序的、类型相同的数据的集合

数组的作用?

处理一些类型相同的数据集合

数组的构成:

元素、下标或索引、数组名

定义:

使用前必须定义

1、存储类型

2、数据类型

3、数组名

4、数组大小

语法:

数据类型 数组名[数组长度] ;

例子:int stuIds[22];

备注:

1、数组名后接一个或多个括在方括号内的表达式,用以指定数组的维数

2、数组长度只能是常量和常量表达式(大于0)

定义数组的特性

所有数组元素具有相同的类型

允许使用变量的地方都可以使用数组元素

取值:也可以使用整型表达式引用数组的元素

数组名[整型表达式]

数组里面的每个元素所占字节数和数组类型一致

初始化:

什么是数组初始化:

数组初始化是在数组定义时给元素赋初值

extern和static数组元素自动初始化为 0 -> extern int a[10];或 static int a[10]; ->代表所有元素值都为0

语法:数据类型 数组名[常量表达式]={值,值…};

例如:int ary[10]={0,1,2,3,4,5,6,7,8,9};

规定:

元素之间用逗号隔开

可以只给部分元素赋值,剩余元素赋0值

给全部元素赋值时,可以不说明元素的个数。例如:int ary[]={0,1,2,3,4,5,6,7,8,9};

二、二维数组

定义(声明):

数据类型 数组名[常量表达式1][常量表达式2];

例如:int temp[4][3];

初始化:

inta[3][4]=

{

{1, 2, 3, 4},

{5, 6, 7, 8},

{9, 10, 11,12}

};

inta[3][4]={

1, 2, 3, 4,

5, 6, 7, 8,

9, 10, 11, 12};

inta[3][4]={

1, 2, 3, 4,

5, 6, 7, 8,

9,10 , 0, 0};

语法:

数组名[行下标][列下标]

三、字符数组

字符串常量

printf("Hello World!!!");

其中Hello World!!!就是字符串数组

区别->字符常量

例如:'a'

备注:

1、符号不同,字符常量用单引号,字符串常量用双引号

2、长度不同,字符常量有且只有一个字节,字符串常量可多个字节

3、字符串常量一'\0'结尾,例如:"Hello World!!!"之后隐藏了一个'\0'

(ps:'\0'称作结束标志)

字符数组 == 字符串变量

注意:

不能对数组做整体化赋值,只能在初始化的时候进行。

==的意义是:判断两个数组的地址值是否相等

strcmp的意义是:判断两个字符数组的值是否相等

例外:字符串可以通过系统函数进行整体操作

四、字符串的整体I/O操作

字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。

头文件 string.h

gets(ps:scanf)

功能:通过标准输入所获得的字符串

函数说明:char *gets(char *buffer);

其中,返回值:成功时返回输出缓冲区首地址,否则返回NULL

puts(ps:printf)

功能:用于在标准输出设备上显示字符串

函数说明:int puts(const char *string);

sprintf

功能:将其他数据类型转换成字符串类型并输出到指定字符串中.

函数说明:int sprintf( char *buffer, const char*format [, argument] ... );

注意:

以上几种字符串处理函数,应当再次强调:库函数并非C语言本身的组成部分,而是C编译系统为方便用户使用而提供的公共函数。不同的编译系统提供的函数数量和函数名、函数功能都不尽相同,使用时要小心,必要时查一下库函数手册。

字符串拷贝函数strcpy格式:

strcpy (字符数组名1,字符数组名2) 功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“”也一同拷贝。字符数名2,

也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。

字符串比较函数strcmp格式:

strcmp(字符数组名1,字符数组名2) 功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。

字符串1=字符串2,返回值 =0;

字符串1〉字符串2,返回值 〉0;

字符串1〈字符串2,返回值〈0。

假设计算机指定数组score中的元素从地址为1000的地方开始存放。那么,存放一个元素,计算机需要给该数组多少空间呢?

由于每个元素的数据类型为int,而一般来说,int占用4个字节,所以计算机需要为每一个元素分配4个字节的存储空间。如下图所示:元素score[0]占用了编号为1000, 1001, 1002, 1003共4个字节的内存空间。score[1]占用1004 - 1007号内存空间。其余元素依此类推。

20190727102551152.gif

当声明数组 int score[10]; 时,计算机就为数组预留10×4=40字节的存储空间,正式的说法是分配40字节的存储空间,此时空间里面没有存放东西。对于数组中的各元素,它们的存储空间是连续的,没有间断。因此,如果知道了某个元素的存放地址,就能准确获取其它元素的存放地址。

下图是对数组声明的一些解说:

20190727102639813.gif

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

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

相关文章

世界类脑AI巨系统研究综述,论ET大脑是不是全球首个类脑架构AI

前言:2017年12月20日阿里云云栖大会提出ET大脑,并宣称为全球首个类脑架构AI,本文详细介绍了类脑AI系统的理论研究和发展现状,分析了ET大脑理论的沿袭与借鉴。并指出企业为提升影响里推动新概念新理论无可厚非,但涉及到…

Netflix 官方技术博客:个性化分发与推荐,走在前列的 Netflix 是怎么做的?

来源:36氪概要:对于个性化分发与推荐,Netflix都是一个走在前面的公司。其首页的个性化推荐策略不断被后来者所模仿。对于个性化分发与推荐,Netflix都是一个走在前面的公司。其首页的个性化推荐策略不断被后来者所模仿。近日&#…

android主要文件的作用是什么,androidmanifest.xml文件的作用是什么

androidmanifest.xml文件的作用:1、是每个android程序中必须的文件,它位于整个项目的根目录;2、配置程序运行所必要的组件,权限,以及一些相关信息;3、是整个应用的入口,所以有助于更加深入的理解…

盘点丨2017年亚洲新晋18家独角兽公司

来源:网易科技概要:在投资领域,当一个创业公司估值达到10亿美元时,人们就称它加入了独角兽俱乐部。在投资领域,当一个创业公司估值达到10亿美元时,人们就称它加入了独角兽俱乐部。据国外媒体Tech in Asia报…

LiteIDE 编写Go的单元测试

第一步:新建一个 package "even" 第二步:编写代码 // even project even.go package evenfunc Even(i int)bool{return i%20 }func odd(i int)bool{return i%21 }第三步:在包 even 下新建测试文件 even_test.go第四步:…

揭秘Facebook SLAM技术,如何为人们生活增添奇幻的艺术色彩?

来源:将门创投概要:随着现代智能手机技术的发展,几乎所有的手机都配备了摄像头、陀螺仪和加速度传感器,硬件的进步帮助SLAM技术得到更广泛的传播和应用。 在过去的一年里,虚拟现实技术(Virtual Reality,简称…

android系统签名app自动更新,【Android 进阶】Apk 使用系统签名

刚入职的时候,固件中 app 需要在源码中编译,不是很理解,为什么不使用 IDE 编译,然后 copy 到 /system/app/*,咨询导师,得到反馈 app 需要使用系统的权限 在 AndroidManifest.xml 中声明了系统全下申明了系统权限androi…

人工智能能否在对抗虚假新闻战争中完胜?

来源:亿欧概要:2017年,误导性和恶意的虚假在线内容是如此丰富多产,以至于人类无法让自己解脱困境。反而,这越发看来机器将不得不拯救我们。这可能是互联网历史上的第一个虚假新闻:1984年,有人在…

AI时代数据之争,我们需要什么样的“数据权”?

来源: 腾讯研究院作者:田小军 腾讯研究院高级研究员1、未来是AI云端的数据竞争时代“兵无常势,水无常形”,今年11月4日,我国《反不正当竞争法》历时24年后首次修订,专设“互联网专条”用以规制互联网行业竞…

预测性智能的力量:AI 和机器学习将如何改变美国政府决策?

来源:36Kr在每个联邦机构中,重要的见解都隐藏在这些年来收集的大量数据集中。 但是由于美国联邦政府数据科学家的匮乏,如果真的要这么做的话,那么从这些数据中提取价值是非常耗时的。 然而,随着数据科学,人…

android 源码分析notification,# Notification 源码分析

引言notification.jpgNotification 在v7版本下从4.0后增加了Media Style. 今天我们分析下Notification在v7版本的源码。有助于我们针对不同版本的Notification做出合适样式选择。Notification使用流程现在我们使用Notification基本都是如下步骤:NotificationCompat.Builder bui…

广州签发全国首张微信身份证,AI成主要证明技术

来源:人工智能学家AItists概要:12月25日,广州市公安局南沙区分局、腾讯、建设银行等10余家单位发起的“微警云联盟”在广州南沙成立,现场签发了全国首张微信身份证“网证”。12月25日,广州市公安局南沙区分局、腾讯、建…

android 视频做背景图片,视频后面怎么加背景图片?安卓手机给视频添加背景图片的方法...

狸窝是帮助用户解决问题 提供教程解决方案 在这个过程中有使用我们自己开发的软件 也有网上找的工具 只要帮助用户解决问题就好!同意则往下继续了解学习 ...注意此教程方案是:『安卓手机端教程方案』。很多手机视频分享平台对视频参数都会有要求,手机上大…

量子计算远没到可收割的时候

来源:风云之声概要:我们重视量子计算,是因为它的潜力,而不是它的现状。它确实有革命性的潜力,只是还需要艰苦的努力,绝不是一蹴而就的,更不是已经处在商业盈利的边缘,等着大家一哄而…

2017,AI偏见为何如此受关注?

来源:亿欧概要:从荒谬到令人不寒而栗,算法偏见在社会中产生越来越大的影响,而且这一问题已经暴露多年。但直到2017年,人们对AI算法偏见的公众意识似乎才达到了一个临界点。佛罗里达州的一项犯罪预测算法错误地将黑人罪…

android aidl工具,【Android】AIDL介绍和实例讲解

前言为使应用程序之间能够彼此通信,Android提供了IPC (Inter Process Communication,进程间通信)的一种独特实现: AIDL (Android Interface Definition Language, Android接口定义语言)。网上看了几篇关于AIDL的文章,写…

机器学习 TOP 10 必读论文 | 资源

来源:AI科技大本营编辑 | DonnaMedium上的机器学习深度爱好者必关注的账号Mybridge照例对11月发表的学术论文进行了排名,整理出了10篇必读论文,建议收藏深读。1. Alpha Zero:用强化学习算法对中国象棋和国际象棋进行自我修炼&…

爱奇艺首页底部导航按钮android,仿爱奇艺/腾讯视频ViewPager导航条实现

仿爱奇艺/腾讯视频ViewPager导航条实现,支持自定义导航条高度,宽度,颜色变化,字体大小变化。支持多种滚动模式,支持自定义每个TabView的样式。项目地址:https://github.com/KCrason/DynamicPagerIndicatord…

详解MYSQL数据库密码的加密方式及破解方法

来源:http://www.heibai.net/articles/hacker/mimapojie/2009/0908/841.html MYSQL数据库用户密码跟其它数据库用户密码一样,在应用系统代码中都是以明文出现的,在获取文件读取权限后即可直接从数据库连接文件中读取,例如asp代码中…

亚马逊等智能音箱“偷听”用户 被指收集隐私

来源:中国评论通讯社概要:近日,美国消费者保护组织Consumer Watchdog出具的一份报告显示,来自亚马逊和谷歌的专利申请曝光了其智能音箱是如何“偷听”用户的。据英国《每日邮报》报道,近日,美国消费者保护…