| |
|
开发:
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++学习要点总结(第四章) -> 正文阅读 |
|
[C++知识库]C++学习要点总结(第四章) |
第四章 复合类型4.1 数组数组(array)是一种数据格式,能够存储多个同类型的值。每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素。 要创建数组,可使用声明语句。数组声明应指出以下三点:
声明数组的通用格式如下: typeName arrayName[arraySize]; 注意:arraySize它必须是整型常数或const值,也可以是个常量表达式,即所有值在编译的时候都是已知的。 数组可以单独访问数组元素,方法是通过使用下标或索引来对元素进行编号。(C++数组从0开始编号。) 小tips:编译器不会检查使用的下标是否有效。但是程序运行后,下标无效可能会引发问题,它可能会破坏数据结构或代码,也可能会导致程序的终止。所以必须确保程序只使用有效的下标值。 下面这段代码说明了数组的一些属性,包括声明数组、给数组元素赋值以及初始化数组。
注意:sizeof运算符用于数组名的时候,得到的将是整个数组中的字节数。但如果将sizeof用于数组元素,则得到的将是元素的长度(单位为字节)。这表明yams是一个数组,而yams[1]只是一个int 变量。 4.1.1 数组的初始化规则只有在定义数组的时候才能使用初始化,此后就不能对数组进行初始化操作了。也不能将一个数组赋给另一个数组。然而,可以使用下标分别给数组中的元素赋值。初始化数组的时候,提供的值可以少于数组的元素数目。(int yams[5]={1,2,3};编译器会把未提供值的元素设为0) 如果初始化数组时方括号内([])为空,C++编译器将计算元素个数。(通常情况下让编译器计算元素个数是种很糟的做法。如果主要关心的问题是程序,而不是自己是否知道数组的大小,则可以这样做: short things[]={1,5,3,8}; int num_elements=sizeof things/sizeof(short);) 4.1.2 C++11数组初始化方法C++11将使用大括号的初始化作为一种通用初始化方式,可用于所有类型。 C++11中的列表初始化新增了一些功能:
4.2 字符串字符串是存储在内存的连续字节中的一系列字符。 C-风格字符具有一种特殊的性质:以空字符结尾,空字符被写作\0,其ASCII码为0,用来标记字符串的结尾。 char dog[3]={'a','b','\0'};//是字符串 char dog[3]={'a','b','c'};//不是字符串 在cout打印的时候,遇到空字符就停止。 char birds[11]="Mr.Cheeps"; char fish[]="Bubbles"; 以上两个初始化方式都可以,用引号括起的字符串隐式地包括结尾的空字符。 注意:在确定存储字符串所需的最短数组时,别忘了将结尾的空字符计算在内。 注意:字符串常量(使用双引号)不能与字符常量(使用单引号)互换。字符常量如‘A’。但“A”不是字符常量,它表示的是两个字符A和\0。 4.2.1 拼接字符串常量有时候字符串很长,无法放到一行中。C++允许拼接字符串字面值,即将两个用引号括起来的字符串合并为一个。事实上,任何两个由空白(空格、制表符和换行符)分隔打的字符串常量都将自动拼接称一个。 注意:拼接时不会在被连接的字符串之间添加空格。 4.2.2 在数组中使用字符串要将字符串存储到数组中,最常用的方法有两种——将数组初始化为字符串常量、将键盘或文件输入读入到数组中。 下面一段代码,使用了strlen()和sizeof可以看一下它们的区别。
strlen()只计算可见的字符,而不把空字符计算在内。 4.2.3 字符串的输入字符串的输入中存在一个缺陷。下面程序将揭示该缺陷。
cin使用空白(空格、制表符和换行符来确定字符串的结束为止),这意味着cin在获取字符数组输入时只读取一个单词。读取该单词后,cin将该字符串放在数组中,并自动在结尾处添加空字符。 4.2.4 每次读取一行字符串输入下面将介绍两个成员函数分别是getline()和get()。 1.面向行的输入:getline() getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。如,cin.getline(name,20)将输入的值读取到一个包含20个元素,名字为name的数组中。 注意:getline()函数每次读取一行。它通过换行符来确定行尾,但不保存换行符。相反,在存储字符串的时候,它用空字符来替换换行符。 下面一段代码将展示如何调用getline()。
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/4 5:44:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |