C++基本语法入门补充

结合之前的内容,以下3个方向作为“基础语法的补充说明”,不属于核心必学,但能帮你避免入门常见问题:

一、变量的“作用域”与“生命周期”

之前未明确变量的有效范围,这是入门易混淆点:

#include <iostream>
using namespace std;

int globalVar = 10; // 全局变量:整个程序有效

int main() {
    int localVar = 20; // 局部变量:仅main函数内有效
    {
        int blockVar = 30; // 块变量:仅当前大括号内有效
        cout << blockVar << endl; // 正常输出30
    }
    // cout << blockVar << endl; // 报错:blockVar已超出作用域
    
    cout << localVar << endl; // 正常输出20
    cout << globalVar << endl; // 正常输出10
    return 0;
}

 

核心点:全局变量在所有函数外定义,程序全程有效;局部/块变量在函数/代码块内定义,出范围后自动销毁。


二、const 修饰符(常量定义)

用于定义“不可修改的值”,避免误操作:

#include <iostream>
using namespace std;

int main() {
    const int MAX_AGE = 120; // const修饰的变量,值不可改
    // MAX_AGE = 130; // 报错:常量不能修改
    
    const int* p = &MAX_AGE; // 指针指向常量,不能通过指针改值
    // *p = 140; // 报错
    
    return 0;
}

 

核心点:const 修饰的变量必须初始化,后续无法修改,常用于定义固定值(如最大值、常量参数)。


三、数组的补充:动态数组与边界注意

之前仅讲静态数组,补充动态数组(用new申请内存):

#include <iostream>
using namespace std;

int main() {
    int n = 5;
    // 动态数组:根据变量n的大小,在运行时申请内存
    int* arr = new int[n]; 
    
    for (int i = 0; i < n; i++) {
        arr[i] = i + 1; // 赋值1~5
    }
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " "; // 输出1 2 3 4 5
    }
    
    delete[] arr; // 动态数组使用后必须释放内存,避免内存泄漏
    return 0;
}

 

核心点:静态数组大小必须是常量(如int arr[5]),动态数组大小可在运行时确定,但需手动释放内存;数组无边界检查,访问arr[10](超出大小)会导致错误,需自行控制索引范围。

THE END
喜欢就支持一下吧
赞赏 分享