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,一经查实,立即删除!

相关文章

Go语言,在Ubuntu9.10和Windows安装

工作环境:Ubuntu9.10A、安装C语言工具Go的工具链采用C语言编写,构建需要安装以下开发工具:GCC,C语言标准库,the parser generator Bison,make,awk, 和ed (编辑器).对于 OS X 系统,以上工具是Xcode的一部分。…

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

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

n元n次方程求解c 语言,解n元一次方程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼解N元一次方程从文件读入整数 N, 然后读入N*( N1)矩阵,得到解并输出到文件中。int main(){int ch;printf("\n");printf(" Gaussian Matrix Cal \n");printf("\n");printf("Choose:…

我为什么喜欢Go语言

来源:http://www.cnblogs.com/AllenDang/archive/2012/03/03/2378534.html 从2000年至今,也写了11年代码了,期间用过VB、Delphi、C#、C、Ruby、Python,一直在寻找一门符合自己心意和理念的语言。我很在意写代码时的手感和执行的效…

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…

数独游戏破解

游戏规则: 1、每行都是 1~9 2、没列都是 1~9 3、每块都是 1~9 解答思路: 从坐标 [0][0] 开始,算出其允许填入的数字集合(每行允许数字集合、每列允许数字集合 和 每块允许数字集合 的交集)。 从左到右&#xff0c…

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

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

android gpu 视频编码,android – 编码器崩溃对Adreno GPU编码从Surface

我一直在努力解决这个问题超过一个星期,很可能是一个错误的Qualcomm GPU /硬件视频编码器。因为我们被迫发布应用程序,并且他们的开发人员论坛没有提供任何反馈,我也在这里发布它,希望有人能够提供一些线索,或更好&…

穷举法破解集合小游戏~

游戏网站:http://www.setgame.com/puzzle/set.htm 游戏规则: 1、三种颜色(红、绿、紫) 2、三种外形(方形、椭圆形、花形) 3、三种背景阴影(实心、点、轮廓) 4、三种个数&#x…

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

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

android点击通知后消失,通知栏点击后消失解决方法

通知栏点击后消失怎么使通知栏点击后消失啊?以下为我的代码,能实现将信息放入通知栏,但是点击后不消除。。。private void showNotification(String temp) {// 创建一个NotificationManager的引用NotificationManager notificationManager (…

Struts2 的Action 命名重复检测

原因&#xff1a;在实际项目中发现 <action /> 的 name 重复时候&#xff0c;Struts2 并不会报错而是随意找一个去执行&#xff01; 为了避免重复的情况发生&#xff0c;特地写了一个检测的程序&#xff1a; package barcode;import java.io.IOException; import java.i…

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

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

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

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

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

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