| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> C语言——数组 -> 正文阅读 |
|
[数据结构与算法]C语言——数组 |
目录 数组:一组相同元素的集合 一维数组声明:
常量表达式:必须是一个大于零的整数常量。 举个例子
注:数组创建,在C99标准之前, [ ] 中要给一个常量才可以,不能使用变量。在C99标准支持了变长数 组的概念。 初始化:数组的初始化是指,在声明数组的同时给数组的内容一些合理初始值(初始化)。 完全初始化:完全初始化数组时,数组中的常量表达式可以省略。会按照所给予的元素个数,自动确定数组大小 例
?不完全初始化在初始化数组的时候,部分元素初始化,其余元素将自动补为0
? 全局数组:全局数组的初始化与全局变量有几分相似,当全局数组被声明但未初始化时,会被自动初始话为全零?
? ?字符数组char类型的数组中除了可以存放字符意外,也可以存放字符串 字符串存放与字符大致相似,但还是有一些不同
?字符数组中存储的都是 --hello world--为何相差一个元素呢? 打开监视查看一下就会发现 ?相较于arr来说,ch中多储存了一个 \0。 在字符串的结尾,计算机会自动加上一个\0。 使用:通过下标引用操作符[]与元素下标,可以实现对数组中函数的使用 (只能逐个引用数组元素,不能一次引用整个数组。) 下标:数组中每个元素都有自己的下标,下标是从0开始依次增大的 举个例子
?总结:
内存中的存储数组在内存中是连续存放的 可以通过数组中各个元素的地址来观察
?可以发现每个元素的地址间相差四个字节。该数组是整型数组,可以很清晰的得知。 数组在内存中是连续存放的 ?注:数组名是首元素地址 ? ? ? arr[i] 也可以理解为 (arr+i)* 二维数组声明二维数组的声明与一维数组有几分相似
举个例子
初始化
表达式一可以理解为 行 数 表达式二可以理解为 列 数 举个例子
? ?可以理解为声明一块三行四列的空间,依次像其中存数据,行满后存到下一行。 注:为不完全初始化,未初始化的空间补零。 以这个例子为前提,一下几个例子就好理解许多了
? ?二维数组中,行数是可以省略的。会按照初始化的行数,自动确定行数的大小
? ? 使用二维数组的使用也是依靠下标的 以一个函数解释
?可以通过行下标与列下标来锁定元素,以达到使用的效果 内存中的存储二维数组在内存中也是连续存放的
?虽然在理解二维数组时,常常把二维数组理解成一个平面,起始在内存中还是连续存放的 如下图所示 数组越界通过下标调用函数时,需要注意下标的范围,以避免出现越界的情况 以一维数组为例子 数组存在n个元素,那么下标的范围为0 ~n-1,当下标小于0或大于n-1时便属于越界访问了,超出了数组合法空间的访问。 二维数组同理 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 18:31:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |