iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言全方位讲解数组的使用
  • 162
分享到

C语言全方位讲解数组的使用

2024-04-02 19:04:59 162人浏览 薄情痞子
摘要

目录一维数组的创建和初始化1.数组的创建2.数组创建方式 3.数组的初始化一维数组的使用一维数组的存储二维数组的创建与初始化 1.二维数组的创建2.二维数组的初始

接着上次的操作符的详解,让我们来简单了解C语言里的数组。

一维数组的创建和初始化

1.数组的创建

数组是一组相同类型的元素的集合

2.数组创建方式 

type_t(数组类型) arr_name(数组名) [const_n](用来指定数组大小)

3.数组的初始化

数组的初始化是在其定义的时候就应该执行的,如:为5个已经知道的整形数据进行排序

//正确
int Arr[5] = { 1, 2, 3, 4, 5 };
//而不能用下面这种方式
int Arr[5];
Arr[5] = { 1, 2, 3, 4, 5 };

因为对于 Arr[5] = 来说,这是一个赋值操作,将右值赋值给左值,一切常数、字符和字符串都是右值。在这里 { 1, 2, 3, 4, 5 }; 并不是右值的一种,所以这是错误的。

另一个错误是,Arr[5] 下标为 5 这个元素实际上并不存在的属于数组的越界。

有数字类型的初始化,自然也有字符类型的初始化

字符类型初始化的两种方式:

char arr[5]={'a','b','c','d','e'};
char arr[5]= "abcde ";

1.空字符是字符串的终止符(空字符本身不是字符串的一部分,所以字符串的长度并不包含空字符)

2.操作字符串时,必须保证字符串以空字符(\0)结尾(不以空字符结尾的字符序列,不是字符串)。

一维数组的使用

用单引号形式初始化的数组代表只有这些数据,并且在末端不包含\0

总结

  • 数组是使用下标来访问的,下标是从0开始。
  • 数组的大小可以通过计算得到。
  • Int sz = sizeof(arr)/sizeof(arr[0])

一维数组的存储

当我们定义了长度为5的整型数组,操作系统就会为其分配连续的五个内存地址。

这些地址用来存放数据,每一个地址所占的字节是数组的数据类型所决定的。 如int类型的每一个地址占据着4个字节,double类型的8个。

因为每个整形大小为四个字节,所以如图每个地址间隔为4。

讲完了一维数组的知识点,让我们简单了解一下二维数组

二维数组的创建与初始化 

1.二维数组的创建

第一个括号指定行,第二个括号指定列

可以只对部分元素赋值,未赋值的元素自动取“零”值。例如:

int arr[3][4]={1,2,3,4,5}

2.二维数组的初始化

第一行:123 第二行:45

二维数组的列不能省略行可以在括号内大括号分割明确时省略

二维数组的存储

二维数组在内存中的存储

如果定义一个这样的二维数组int a[3][4]={undefined{1,3,5,7},{9,11,13,15},{17,19,21,23}};则其在内存中的表示可能下面这样的。

由上图可以看出,在内存中二维数组是按照行主序进行存储的,从内存的角度上看,二维数组本质就是一个一维数组。如果把二维数组的每一行看成一个整体,即看成一个数组中的一个元素,那么整个二维数组就是一个一维数组。而二维数组的名字代表二维数组第0行的首地址(注意它是代表一行元素的首地址,而不是第0行第0列元素的首地址,虽然是相等的,但不能这么理解,所以在没有强制转换的情况下,二维数据要么通过行指针进行参数传递,要么通过二维指针进行参数传递)。 

数组的越界

这里讲的数组长度存在一个界,而一旦超过了这个大小,就会发生一些未知的错误,也就是所谓的越界

这里用一个例子来说明下越界后数组内部的值的情况:

根据代码可知,当数组越界后,其数值是不确定的。

总结 

以上就是初阶数组的基本内容。如果你读到了这里,非常感谢你能看完的文章!!!

到此这篇关于C语言全方位讲解数组的使用的文章就介绍到这了,更多相关C语言 数组内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言全方位讲解数组的使用

本文链接: https://www.lsjlt.com/news/145800.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言全方位讲解数组的使用
    目录一维数组的创建和初始化1.数组的创建2.数组创建方式 3.数组的初始化一维数组的使用一维数组的存储二维数组的创建与初始化 1.二维数组的创建2.二维数组的初始...
    99+
    2024-04-02
  • C语言全方位讲解指针的使用
    目录一、指针的概念1.1、变量和地址1.2、指针变量和指针的类型二、指针变量2.1、指针变量的定义及使用2.2、指针运算三、野指针3.1、概念:3.2、野指针的成因3.3、如何规避野...
    99+
    2024-04-02
  • C语言strlen函数全方位讲解
    目录strlen函数的讲解strlen函数的模拟实现计数器方式递归的方式指针减指针的方式strlen函数的讲解 strlen函数我们应该不陌生,它可以帮助我们求字符串的长度(不包括&...
    99+
    2024-04-02
  • C语言数组全面详细讲解
    目录1.基础知识2.数组的分类2.1按元素类型分类2.2按维数分类3.数组定义和初始化3.1 一维数组3.2 二维数组4.数组元素的引用方法5.字符数组的定义1.基础知识 C语言中使...
    99+
    2024-04-02
  • C语言超全面讲解函数的使用方法上
    目录一、函数的分类1.库函数2.自定义函数3.库函数的分类二、函数调用1.传值调用2.传址调用三、函数的声明四、函数定义 五、函数的参数1.形式参数(形参)2.实际参数(实...
    99+
    2024-04-02
  • C语言超全面讲解函数的使用方法下
    目录一、函数的嵌套调用二、函数的链式访问三、函数递归递归的优缺点必要条件使用场景函数递归的细节说明 举例说明对两个必要条件的理解四、递归练习C语言超全面讲解函数的使用方法上...
    99+
    2024-04-02
  • C语言全方位讲解指针与地址和数组函数堆空间的关系
    目录一、一种特殊的变量-指针二、深入理解指针与地址三、指针与数组(上)四、指针与数组(下)五、指针与函数六、指针与堆空间七、指针专题经典问题剖析一、一种特殊的变量-指针 指针是C语言...
    99+
    2024-04-02
  • C语言详细讲解位运算符的使用
    目录一、位运算符分析二、小贴士三、位运算与逻辑运算四、小结一、位运算符分析 C语言中的位运算符 位运算符直接对 bit 位进行操作,其效率最高。 &按位与|按位或^按位异或~...
    99+
    2024-04-02
  • C语言从基础到进阶全面讲解数组
    目录1.基础知识2.数组的分类2.1按元素类型分类2.2按维数分类3.数组定义和初始化3.1 一维数组3.2 二维数组4.数组元素的引用方法5.字符数组的定义1.基础知识 C语言中使...
    99+
    2024-04-02
  • C语言深入讲解函数的使用
    目录关于函数1. 函数的定义形式2. 函数的声明3. 返回语句4. 函数参数4.1 形式参数(传值调用)4.2 实际参数(传址调用)4.3 无参数5. 函数的调用5.1 嵌套调用5....
    99+
    2024-04-02
  • C语言详细讲解指针数组的用法
    目录1. 指针数组定义方法2. 指针的指针(二级指针)3. 字符串和指针4. 数组指针定义方法数组指针的用法1. 指针数组定义方法 格式: 类型说明符 *数组名[ 元素个数 ] in...
    99+
    2024-04-02
  • C语言数组超详细讲解上
    目录前言1、一维数组的创建和初始化1.1 一维数组的创建1.2 一维数组的初始化1.3 一维数组的使用1.4 一维数组在内存中的存储2、二维数组的创建和初始化2.1 二维数组的创建2...
    99+
    2024-04-02
  • C语言指针引用数组案例讲解
    前言:C语言中指针玩的是什么,是内存,要想学好指针的小伙伴们要先对数据在内存中是怎么玩的做一番了解~       当在...
    99+
    2024-04-02
  • C语言详细讲解#pragma的使用方法
    目录一、#pragma 简介二、#pragma message三、#pragma once四、#pragma pack五、小结一、#pragma 简介 #pragma 用于指示编译器...
    99+
    2024-04-02
  • C语言 详细讲解#pragma的使用方法
    #pragma是C语言中的预处理指令,用于告诉编译器在编译过程中采取特定的行为。以下是#pragma的使用方法的详细讲解:1. #p...
    99+
    2023-08-08
    C语言
  • C语言深入讲解函数参数的使用
    目录一、函数参数二、程序的顺序点三、小结-上四、调用约定五、可变参数六、可变参数的限制七、小结-下一、函数参数 函数参数在本质上与局部变量相同在栈上分配空间函数参数的初始值是函数调用...
    99+
    2024-04-02
  • C语言详细讲解qsort函数的使用
    目录qsort1.int型2.float型3.struct型qsort 功能:Performs a quick sort.(快速排序)参数:void qsort( void *bas...
    99+
    2024-04-02
  • C语言中数组的使用详解
    目录1 数组的基本概念2 数组定义语法3 一维数组的初始化3.1 全部初始化3.2 部分元素赋初值3.3 省略长度赋初值4 一维数组的使用示例4.1 求最大值、最小值、平均值4.2 ...
    99+
    2024-04-02
  • C语言全面讲解顺序表使用操作
    目录一、顺序表的结构定义二、顺序表的结构操作1.初始化2.插入操作3.删除操作4.扩容操作5.释放操作6.输出三、示例编程环境为 ubuntu 18.04。 顺序表需要连续一片存储空...
    99+
    2024-04-02
  • C语言超详细讲解轮转数组
    目录题目描述实例解题思路1. 先整体逆转2.逆转子数组[0, k - 1]3.逆转子数组[k, numsSize - 1]易错点代码题目描述 给你一个数组,将数组中的元素向右轮转 k...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作