第四章节-28--数组--Vector -字符串

目录:

 数组的引入:

数组的定义

  • 数组是将多个相同类型 的对象串联在一起组成的类型。
  • 示例:int a 是一个单独的整数类型,而 int b[10] 则是一个包含 10 个整数的数组。

数组的初始化方式

  • 缺省初始化
    • 如果数组没有被显式初始化,那么数组的元素会根据其类型使用缺省值进行初始化。例如,整数数组的元素会被初始化为 0

解释:

在C++中,数组的初始化行为在函数内部和全局域的确是不同的。具体来说:

  1. 全局域(全局作用域)

    • 全局变量或静态变量如果没有显式初始化,它们会被自动初始化为其类型的默认值。对于整数类型,这个默认值是0。
    • 例如,全局整数数组会被初始化为0。
  2. 函数内部(局部作用域)

    • 局部变量如果没有显式初始化,它们的值是未定义的。它们可能包含在内存中之前的任意值(垃圾值)。
    • 局部整数数组不会被自动初始化为0,除非显式地进行初始化。

以下是一个示例代码,演示全局和局部数组在没有显式初始化时的行为:

#include <iostream>

// 全局整数数组
int globalArray[5];

void printArray(const int arr[], int size) {
    for (int i = 0; i < size; ++i) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
}

int main() {
    // 局部整数数组
    int localArray[5];

    std::cout << "Global array: ";
    printArray(globalArray, 5); // 全局数组,未显式初始化,默认值为0

    std::cout << "Local array: ";
    printArray(localArray, 5); // 局部数组,未显式初始化,值是未定义的(垃圾值)

    return 0;
}

输出结果:

Global array: 0 0 0 0 0 
Local array: 2147483647 -1 0 0 134513872
//具体的垃圾值会因环境而异
  • 全局数组

    • globalArray 是一个全局变量,未显式初始化,因此它的元素会自动初始化为0。
    • 输出为 0 0 0 0 0
  • 局部数组

    • localArray 是一个局部变量,未显式初始化,因此它的元素值是未定义的,可能包含内存中的垃圾值。
    • 输出为一些随机值,这些值取决于内存中之前的内容。
  • 聚合初始化 (aggregate initialization)
    • 聚合初始化指的是在定义数组时,直接使用花括号 {} 来给数组中的元素赋值。
    • 示例:
    • int b[3] = {1, 2, 3}; // 这是一种聚合初始化方式
  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值