当前位置: 首页 > wzjs >正文

全球最大源码共享网站网易云外链wordpress

全球最大源码共享网站,网易云外链wordpress,秦皇岛市建设局,外包接活平台今天继续来浅浅推进一下C语言的复习,这次是数组的复习,话不多说,正文开始. 数组的概念 数组是⼀组相同类型元素的集合,一种自定义类型.数组中元素个数不能为0.数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组. 下面从一维数组说起. 一维数组的创建和…

        今天继续来浅浅推进一下C语言的复习,这次是数组的复习,话不多说,正文开始.

数组的概念

        数组是⼀组相同类型元素的集合,一种自定义类型.数组中元素个数不能为0.数组分为⼀维数组和多维数组,多维数组⼀般⽐较多⻅的是⼆维数组.

        下面从一维数组说起.

一维数组的创建和初始化

  数组创建

        ⼀维数组创建的基本语法如下:(数组在创建的时候可以指定数组的大小和数组的元素类型).

type arr_name[常量值];

        1.type 指定的是数组中存放数据的类型,可以是: char、short、int、float 等,也可以自定义的类型

        2.arr_name 指的是数组名的名字

        3.[] 中的常量值是⽤来指定数组的大小的

  数组的初始化

        数组在创建的时候,我们需要给定⼀些初始值值,这种就称为初始化.数组的初始化⼀般使⽤⼤括号,将数据放在⼤括号中.

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>void Print(int arr[], int sz)
{for (int i = 0; i < sz; i++){printf("%d ", arr[i]);}printf("\n");
}
int main()
{//完全初始化int arr1[10] = { 1,2,3,4,5,6,7,8,9,0 };//不完全初始化:其余的会被默认初始化为0int arr2[10] = { 1,2 };//[]中不写,初始化为几个就是几个元素int arr3[] = { 1,2,3,4,5 };Print(arr1, 10);Print(arr2, 10);Print(arr3, sizeof(arr3)/sizeof(arr3[0]));return 0;
}

  数组的类型

        数组也是有类型的,数组算是⼀种⾃定义类型,去掉数组名留下的就是数组的类型.

int arr[10]的类型就是int [10];

char ch[5]的类型是 char [5];

一维数组的使用

        简单的了解了一维数组后,让我们复习一下它的使用.

  数组下标

        定数组是有下标的,下标是从0开始的,假设数组有n个元素,最后⼀个元素的下标是n-1.如下图:

        我们通常用下标引用符[ ]来访问数组元素.例如我们访问下标为7的元素,我们就可以使用arr[7].

  数组元素的打印和输入

        在上面初始化中为了看见初始化的结果,我已经将打印的代码先使用了.因为数组用下标访问,所以只要便利数组下标就可以打印数组了.

        数组的输入与打印类似,大概如下

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>void Print(int arr[], int sz)
{for (int i = 0; i < sz; i++){printf("%d ", arr[i]);}printf("\n");
}int main()
{int arr[10] = { 0 };for (int i = 0; i < 10; i++){scanf("%d", &arr[i]);}Print(arr, 10);return 0;
}

  一维数组在内存中的存储

        想要了解一维数组在内存中的存储最好的方法就是打印数组中每个元素的地址.代码和结果如下图.

        由上图输出结果可知,每两个元素之间都隔离四个字节,而一int类型就占四个类型.所以我们得出结论:数组在内存中是连续存放的.

  sizeof计算数组元素个数

        在遍历数组的时候,我们经常想知道数组的元素个数.在C语言中我们可以用sizeof来实现.

        sizeof中C语⾔是⼀个关键字,是可以计算类型或者变量大小的,(他的返回值是所计算类型或变量所占的字节数),其实 sizeof 也可以计算数组的大小.如下

int main()
{int arr[10] = { 0 };printf("%d\n", sizeof(arr));return 0;
}

        因为数组中所有元素的类型都是相同的,那只要计算出⼀个元素所占字节的个数,数组的元素个数就能算出来。这⾥我们选择第⼀个元素算大小就可以.然后二者相除就可以得出数组元素个数.

int main()
{int arr[10] = { 0 };int a = sizeof(arr) / sizeof(arr[0]);printf("%d\n", a);return 0;
}

        有了这个方法,以后在代码中需要数组元素个数的地⽅就不用固定写死了,使用上面的计算,不管数组怎么变化,计算出的大小也就随着变化了.

二维数组

  二维数组得概念

        前⾯学习的数组被称为⼀维数组,数组的元素都是内置类型的,如果我们把⼀维数组做为数组的元素,这时候就是二维数组⼆维数组作为数组元素的数组被称为三维数组二维数组以上的数组统称为多维数组.

  二维数组的创建和初始化

        二维数组的创建:

type arr_name[常量值1][常量值2];

常量值1表示二维数组有几行

常量值2表示二维数组有几列

type是元素类型

arr_name是数组名

        那⼆维数组如何初始化呢?像⼀维数组⼀样,也是使⽤⼤括号初始化的.

        不完全初始化

int main()
{//不完全初始化int arr1[3][5] = { 1,2,3,4,5 };for (int i = 0; i < 3; i++){for (int j = 0; j < 5; j++){printf("%d ", arr1[i][j]);}printf("\n");}printf("\n");//按照⾏初始化int arr2[3][5] = { {1,2},{3},{4,5} };for (int i = 0; i < 3; i++){for (int j = 0; j < 5; j++){printf("%d ", arr2[i][j]);}printf("\n");}return 0;
}

        输出结果

        完全初始化

int main()
{//完全初始化int arr1[2][5] = { 1,2,3,4,5,6,7,8,9,0};for (int i = 0; i < 2; i++){for (int j = 0; j < 5; j++){printf("%d ", arr1[i][j]);}printf("\n");}return 0;
}

        输出结果

        类似于一维数组,初始化时省略行,但是不能省略列

int main()
{int arr1[][5] = { 1,2,3,4,5,6 };for (int i = 0; i < 2; i++){for (int j = 0; j < 5; j++){printf("%d ", arr1[i][j]);}printf("\n");}return 0;
}

        输出结果

  二维数组的使用

        ⼆维数组访问也是使⽤下标的形式的,⼆维数组是有⾏和列的,只要锁定了⾏和列就能唯⼀锁定 数组中的⼀个元素.

        如上图,最右侧绿⾊的数字表示行号,第⼀⾏蓝⾊的数字表⽰列号,都是从0开始的,

        例如,我们说:第2行,第4列,快速就能定位出7.

  二维数组的输入和输出

        同样在上面为了观察初始化的结果,我已经使用了二维数组的输出,输入与输出类似.代码见下

int main()
{int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };int i = 0;//输⼊for (i = 0; i < 3; i++) //产⽣⾏号{int j = 0;for (j = 0; j < 5; j++) //产⽣列号{scanf("%d", &arr[i][j]); }}//输出for (i = 0; i < 3; i++) //产⽣⾏号{int j = 0;for (j = 0; j < 5; j++) //产⽣列号{printf("%d ", arr[i][j]); }printf("\n");}return 0;
}

  二维数组在内存中的存储 

        像⼀维数组⼀样,如果想研究⼆维数组在内存中的存储⽅式,我们也是可以打印出数组所有元素的地址.结果如下

        从输出的结果来看,每⼀⾏内部的每个元素地址之间都相差4个字节,跨⾏位置处的两个元素(如:arr[0][4]和arr[1][0])之间也是差4个字节,所以⼆维数组中的每个元素都是连续存放的.如下图所示

        还有一点点为c99中的变长数组,了解即可~以上就是所有复习内容啦,下篇复习见~

http://www.dtcms.com/wzjs/783603.html

相关文章:

  • 永春建设局网站网站建设缺陷
  • 网站建设一条成都到西安需要核酸检测吗
  • 成都网站制作沈阳多语言网站怎么实现的
  • 网站营销与推广公司网站建设有用吗
  • 网站文章采集工具网站设计制作一条龙多少钱
  • 内网门户网站建设要求河北百度seo关键词排名
  • 服装企业官方网站大连免费网站建设
  • 上海雷蒙威手表网站门店门面设计效果图
  • 网站模板哪个网站全面仿制网站软件
  • 九龙坡网站建设哪家好比较好的高端网站制作公司
  • 常州企业建站系统模板如何用wordpress设计成网上商城
  • 代写网站建设合同科技企业网站模板
  • 服务器网站部署端口配置网站cn和com有什么区别
  • 深圳英文建站公司国内三大it外包公司
  • 做招聘的网站有哪些什么是网页?
  • 百度网站域名网站备案 怎么加
  • 东莞网站上排名自助搭建平台
  • 网站建设 趋势html5微网站源码
  • 创业做网站需要哪些必备条件h5直播视频接入
  • 做你的爱人3在线观看廊坊关键词seo排名网站
  • 有开源项目做的网站高端网页制作公司哪家好
  • 常德网站开发网站运营什么网站做美式软装设计方案
  • 国外外贸需求网站上海网站推广广告
  • 霸屏网站开发网页制作设计方案
  • 免费创建虚拟网站工信部网站黑名单查询
  • 江阴做网站公司杭州怎么做网站
  • 网站建设微商城多少钱wordpress主题查询
  • 专注与开发网站的北京网络公司云南搜索引擎优化
  • 建设部网站注册人员昆明网站建设优化企业
  • 做建筑的网站可以做彩票网站的工作室