第4章 C++程序的结构 知识点梳理


 
4.1 变量的类型
 
1. 4.1.1 全局变量与局部变量
 
- 局部变量:定义在函数/代码块内部,仅当前代码块可用,生命周期随代码块结束销毁;
- 全局变量:定义在所有函数外部,整个程序文件可见,程序运行全程存在。
 
2. 4.1.2 变量的存储类型
四类存储修饰符: auto 、 static 、 register 、 extern ,分别控制变量存储位置、生命周期、作用域。
3. 4.1.3 变量在内存中的存储
内存分区:栈(局部auto变量)、堆(动态内存new)、全局/静态区(全局、static变量)、常量区(字符串字面量)。
 
4.2 标识符的作用域与可见性
 
1. 4.2.1 函数原型作用域
仅在函数声明行括号内有效,参数名仅作提示,声明和定义参数名可不一致。
2. 4.2.2 块作用域
大括号 {} 包裹的代码块内定义变量,出括号直接失效,循环、if、函数内部都属于块作用域。
3. 4.2.3 文件作用域
函数外定义的全局标识符,从定义行到文件末尾全程可见, extern 可跨文件访问。
4. 4.2.4 可见性
内层作用域同名变量会屏蔽外层同名标识符,内层优先使用自身变量,外层变量暂时不可见。
 
4.3 程序的文件结构与编译预处理命令
 
预处理指令以 # 开头,编译阶段提前处理,不参与程序运行。
 
1. 4.3.1 文件包含 #include
 
-  #include <头文件> :读取系统标准库头文件;
-  #include "自定义文件" :读取项目内自定义头文件。
 
2. 4.3.2 不带参数的宏定义 #define NAME 内容
简单文本替换,预处理阶段直接替换文本,无类型检查。
3. 4.3.3 带参数的宏定义 #define FUNC(a,b) 表达式
支持形参替换,注意括号规避运算符优先级错误。
4. 4.3.4 条件编译
 #ifdef / #ifndef / #else / #endif ,根据宏是否定义选择性编译代码,常用于跨平台、调试开关。
 
4.4 名字空间 namespace
 
解决全局命名冲突,将变量、函数、类封装在独立命名空间内,使用 命名空间::标识符 访问;标准库全部放在 std 命名空间。
 
 
 
本章核心考点总结
 
1. 区分全局/局部、static自动变量的生命周期、内存分区;
2. 多层作用域屏蔽规则、四种作用域范围;
3. 三大预处理指令(include、宏、条件编译)用法与坑点;
4. namespace 命名空间的作用与基础使

#include<iostream>
#include<cmath>
using namespace std;

class Point{
private:
    double x,y;
public:
    // 带默认参数的构造函数,初始化坐标点
    Point(double x=0,double y=0):x(x),y(y){}

    // 成员函数:计算两点的距离
    double Distance(const Point &p) const
    {
        double dx=x-p.x;
        double dy=y-p.y;
        return sqrt(dx*dx+dy*dy);
    }
};

int main()
{
    cout<<"2547102070翟艺佳";
    double x1,y1,x2,y2;

    cout<<"请输入第一个点的坐标:";
    cin>>x1>>y1;
    if(cin.fail())
    {
        cout<<"不能输入字符!"<<endl;
        return 0;
    }

    cout<<"请输入第二个点的坐标:";
    cin>>x2>>y2;
    if(cin.fail())
    {
        cout<<"不能输入字符!"<<endl;
        return 0;
    }

    // 使用构造函数创建两个点对象
    Point p1(x1,y1);
    Point p2(x2,y2);

    cout<<"两点之间的距离为:"<<p1.Distance(p2)<<endl;
    return 0;
}

用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值