博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
每日一练(三十四)
阅读量:3951 次
发布时间:2019-05-24

本文共 780 字,大约阅读时间需要 2 分钟。

文章目录

2.11 C风格的字符串

C风格的字符串有两种:

  • 字符串常量,由双引号包括的字符序列就是字符串常量,注意字符串常量存储在常量区,但是以数组定义的字符串常量是被拷贝到栈(或者静态区)中的,所以以数组定义的字符串是可以修改元素的。
  • 末尾自动添加了结束符\0的字符数组

注意,结束符就是\0,值为0,也就是NULl。有结束符的字符序列才可以称为字符串。

在这里插入图片描述

2.12 字符数组

字符数组的初始化可以使用字符常量或者常量字符串进行初始化:

在这里插入图片描述

而且在初始化的时候要注意,结束符也是占空间的

结束符在字符串的处理中相当重要!!!这是因为许多的字符串处理函数都是以NULL为结尾处理字符串的。

2.13 二维数组的声明与初始化

二维数组的初始化分为两种:

  • 按行初始化,给出每行的括号
  • 顺序初始化,二维数组也是顺序存储的,所以顺序初始化没毛病

在声明初始化的时候,只有第一维是可以省略的,这个规则适用于更高维数的数组。二维数组来说就是,列数不可省略,如下:

在这里插入图片描述

2.14 二维数组的存储

首先,所有数组在内存中都是线性存储的,对于二维数组也是,但二维数组的线性存储分为两种情况:

  • 行优先存储:这是多数编译器默认的,先顺序存储第一行的元素,再顺序存储第二行的元素,以此类推
  • 列优先存储:先存储第一列的元素,再存储第二列的元素,以此类推

C/C++中默认按照行优先存储,可以在逻辑上转换为一维数组,即:

在这里插入图片描述

比如如下面这些题:

在这里插入图片描述
在这里插入图片描述

还有,在将二维数组转换为一维数组的时候,切记要通过指针的形式来做,不要凭感觉去,因为数组下标是从0开始的,很可能出现失误,如下:

在这里插入图片描述

2.15 二维数组的动态声明

在这里插入图片描述

注意,当动态声明数组的时候,数组相当于一个链表,因为数组的a[k]都是一个int*,所以动态申请的二维数组的元素不是连续的,所以我才说相当于一个链表。

注意释放的时候,先释放a[i],再释放a。

转载地址:http://exwzi.baihongyu.com/

你可能感兴趣的文章
CoreLocation笔记 by STP
查看>>
iOS运行原理笔记 by STP
查看>>
UIViewController的生命周期笔记 by STP
查看>>
版本控制工具笔记-Git by STP
查看>>
Application Transport Security has blocked a cleartext HTTP (http://) 解决方案
查看>>
The identity used to sign the executable is no longer valid.解决方案
查看>>
Xcode增加pch文件
查看>>
CocoaPods安装和使用笔记 by STP
查看>>
Could not find developer disk image-解决方案
查看>>
升级Xcode之后VVDocumenter-Xcode不能用的解决办法
查看>>
iOS开发常见报错及解决方案 by STP
查看>>
SVN(Cornerstone)屏蔽/忽略不需要版本控制的UserInterfaceState.xcuserstate
查看>>
IOS 8 以上版本 设置applicationIconBadgeNumber和消息推送
查看>>
Unknown type name 'class'; did you mean 'Class'? 解决方案
查看>>
git常用命令
查看>>
Java 基本数据类型笔记by STP
查看>>
IDEA创建Maven项目时 loading archetype list转菊花转十年解决方案
查看>>
Java综合基础
查看>>
Mac启动tomcat
查看>>
Mac IntelliJ IDEA 快捷键大全
查看>>