从0开始学习C++ 第九课:数组与字符串

第九课:数组与字符串

学习目标:

  • 理解并能够使用一维和多维数组。
  • 掌握数组的声明、初始化、访问和遍历。
  • 学习C++中字符串的处理,包括C风格字符串和string类的基本使用。
  • 理解数组在内存中的存储方式以及如何使用数组和指针的关系。

学习内容:

  1. 一维数组

    • 概念讲解:
      一维数组是同一类型元素的线性集合。在内存中,这些元素是连续存储的。

    • 声明数组

      • 语法:元素类型 数组名[数组大小];
      • 例如:int numbers[10]; 声明了一个可以存储10个整数的数组。
    • 初始化数组

      • 在声明的时候可以初始化:int numbers[5] = {1, 2, 3, 4, 5};
      • 如果在初始化时不指定数组大小,编译器会根据提供的元素数量自动确定大小。
    • 访问数组元素

      • 使用索引来访问:numbers[0] 访问第一个元素,索引从0开始。
      • 数组越界访问是未定义行为,可能导致运行时错误。
    • 遍历数组

      • 使用循环结构,如for循环,可遍历数组元素。
    • 代码示例:

      #include <iostream>
      using namespace std;
      
      int main() {
          int numbers[5] = {1, 2, 3, 4, 5};
          for(int i = 0; i < 5; i++) {
              cout << numbers[i] << ' ';
          }
          cout << endl;
          return 0;
      }
      
    • 预计输出效果:

      1 2 3 4 5
      
  2. 多维数组

    • 概念讲解:
      多维数组可以看作是数组的数组。二维数组常用于表示矩阵、棋盘等。

    • 声明和初始化

      • 二维数组的声明:元素类型 数组名[行数][列数];
      • 初始化:int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
    • 访问和遍历

      • 使用双层循环遍历二维数组的每个元素。
    • 代码示例:

      #include <iostream>
      using namespace std;
      
      int main() {
          int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
          for(int i = 0; i < 2; i++) {
              for(int j = 0; j < 3; j++) {
                  cout << matrix[i][j] << ' ';
              }
              cout << endl;
          }
          return 0;
      }
      
    • 预计输出效果:

      1 2 3 
      4 5 6
      
  3. 字符串和字符数组

    • 概念讲解:
      字符数组用来存储字符序列,以空字符\0结尾。C++中也可以使用string类来处理字符串,它是C++标准库的一部分,提供了丰富的字符串操作功能。

    • C风格字符串

      • 声明:char str[6] = "Hello";
      • C风格字符串以\0结尾。
    • string类

      • 声明:string str = "Hello";
      • string类有许多成员函数,如length(), append(), find(), 等等。
    • 代码示例:

      #include <iostream>
      #include <string>
      using namespace std;
      
      int main() {
          char cStyleStr[6] = "Hello";
          string cppStr = "Hello";
      
          cout << "C-style string: " << cStyleStr << endl;
          cout << "C++ string: " << cppStr << endl;
      
          return 0;
      }
      
    • 预计输出效果:

      C-style string: Hello
      C++ string: Hello
      

练习题:
编写一个程序,创建一个整型的一维数组,并使用循环将数组中的元素设置为其索引值的平方。然后再次使用循环打印这些值。

练习答案:

#include <iostream>
using namespace std;

int main() {
    const int size = 10;
    int squares[size];

    // 初始化数组
    for(int i = 0; i < size; i++) {
        squares[i] = i * i;
    }

    // 打印数组元素
    cout << "Square of indices:" << endl;
    for(int i = 0; i < size; i++) {
        cout << squares[i] << ' ';
    }
    cout << endl;

    return 0;
}

// 预计输出:
// Square of indices:
// 0 1 4 9 16 25 36 49 64 81

这个练习通过计算索引的平方来填充数组,然后打印出数组的内容。它强调了数组的初始化、索引访问和循环遍历。

目录
第十课:指针与数组关系及指针偏移量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值