首页 技术 正文
技术 2022年11月18日
0 收藏 571 点赞 5,047 浏览 938 个字

1. 数组

  • 概念

    • 是一组元素
    • 这些元素是相同的数据类型
    • 按顺序存储到内存中
    • 目的是避免在业务需要时去重复声明很多同类型的变量
  • 初始化
    • 分别初始化:int i [5] = {1,2,3,4,5};
    • 全部初始化:int i [5] = {}; 或 int i [5] = {0};
    • 部分初始化:int i [5] = {1,2};
    • 长度参数可以也只可以用常量
    • 如果知道每个元素的初始值,可以不指定数组包好的元素数,传几个就是多长:int i [] = {1,2};
  • 访问和修改元素数据
    • 索引从0开始访问数组元素:i[0]
    • 虽然索引可以达到甚至超过数组长度,但取回的值就不确定是什么了,有安全和稳定性的风险,甚至会崩溃,所以要避免。
  • 多维数组
    • C++的多维数组其实只是模拟,本质还是单向的一维顺序存储
    • 初始化时可以以多维的形式,也可以一维的形式:int i[2][2] = {{1,2},{3,4}}; 或 int i[2][2] = {1,2,3,4};
    • 最好以循环的方式访问和操作多维数组,代码更多且不易出错
  • 动态数组
    • 不像静态数组那样提前预留了很多内存空间
    • std::vector
      • #include
      • vector dynArray (3); dynArray[2] = 1; dynArray.push_back(0);
      • push_back将数字插入到数组末尾,这个矢量动态地调整其长度,以存储更多数据。
      • 矢量、模板
  • 一定要初始化变量和数组,否则它将包含最后一次存储在相应内存单元中的值。

2. 字符串

  • C风格字符串

    • 是特殊的字符数组
    • 以’\0’结尾,编译器会帮忙给字符串字面量结尾加上’\0’,’\0’是一个字符,表示空,即让编译器插入空字符或零
    • 如果字符数组包含多个’\0’,那么当成字符串使用时,会被截断。但数组长度没有变,sizeof的结果还是完成的长度
    • 使用C风格的字符串来存储用户输入很不安全,用户可能输入比数组长度更长的字符串。
    • 很危险,比如cout使用字符数组,如果忘了加’\0’,会多打印垃圾字符。某些情况下甚至导致程序崩溃。strcpy、strcat、strlen也是这样
    • 浪费一个字符,考虑限制长度时容易忘记考虑
  • C++字符串
    • 更高效、更安全
    • 是动态的,容量自动增大
    • #include
    • .length()
    • 自动初始化为默认值
  • cout将不断读取字符,直到终止空字符。因此变量空间要足够。
  • \可用于cout语句的换行
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,992
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,506
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,349
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,134
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,766
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,844