当前位置: 首页 > news >正文

从Python、C过渡入门C++|课堂学习纪要

一、学习背景

高中阶段接触Python,大一上学期系统学习C语言,本学期初次学习C++。三种语言学习下来,能清晰感受到三者设计思路、语法风格的巨大差异,本篇整理课堂录音知识点,梳理C++新增特性、与C/Python的区别,用作课程学习博客记录。

二、三种语言简单对比

  1. Python(高中)
    解释型语言,无需编译,不用声明变量类型,语法简洁自由,上手门槛低;但运行效率弱,不适合底层开发。
  2. C语言(大一上)
    编译型面向过程语言,贴近计算机底层,手动管理内存,语法严谨,没有类、封装等高级特性,适合理解程序运行底层逻辑。
  3. C++(当前新课)
    完全兼容C语言所有语法,在C的基础上拓展面向对象、引用、重载、命名空间等功能,兼顾底层性能与上层开发便捷性,是C的“升级版”。

三、输入输出:告别printf/scanf,cin/cout更省心

C语言写法

c

#include <stdio.h>
int main()
{
int num;
scanf(“%d”, &num);
printf(“输入数字:%d\n”, num);
return 0;
}

缺点:必须搭配 %d 、 %f 格式符,容易漏写取地址符 & 出错。

C++新式写法

cpp

#include
using namespace std;

int main()
{
int num;
cin >> num;
cout << “输入数字:” << num << endl;
return 0;
}

优势:不需要格式控制符,自动识别变量类型; endl 实现换行并刷新缓冲区。

四、命名空间 namespace(C语言没有的新概念)

C语言中如果两个函数/变量重名,程序直接编译报错;
C++引入命名空间隔离同名标识符,解决命名冲突问题。

cpp

#include
// 全局引入标准命名空间,简化代码
using namespace std;

int main()
{
// 不引入using时完整写法
std::cout << “标准库输出” << std::endl;
cout << “简写输出” << endl;
return 0;
}

五、原生bool布尔类型

C语言无原生布尔,需要引入 <stdbool.h> 头文件才能使用true/false;
Python布尔首字母大写 True/False ;
C++内置 bool 类型,关键字小写:

cpp

bool flag = true;
if (flag)
{
cout << “条件成立” << endl;
}

六、变量定义更自由

C语言规定变量必须写在代码块最开头;
C++和Python一样,可以在任意位置定义变量,随用随定义,代码可读性更高。

cpp

#include
using namespace std;
int main()
{
cout << “先输出一句话” << endl;
// 中途定义变量,C语言不允许
int a = 10;
cout << a;
return 0;
}

七、函数重载(C语言不支持)

C语言同一个作用域内,函数名不能重复;
C++允许函数名相同、参数列表不同,实现函数重载,根据传入参数自动匹配对应函数。

cpp

#include
using namespace std;

// 重载1:接收int
void show(int x)
{
cout << “整数:” << x << endl;
}
// 重载2:接收double
void show(double x)
{
cout << “小数:” << x << endl;
}

int main()
{
show(66);
show(3.14);
return 0;
}

八、引用 &(C语言无此特性)

引用是C++核心基础语法,相当于变量别名,操作引用等同于操作原变量,不需要像C语言一样频繁使用指针传参。

cpp

#include
using namespace std;
int main()
{
int a = 10;
// b是a的引用
int &b = a;
b = 20;
cout << a; // 输出20,修改b同步改变a
return 0;
}

九、初学总结与感悟

  1. 有C语言基础学习C++门槛很低,原有C代码可以直接复用,重点掌握新增的语法特性;
  2. 对比Python,C++强类型、编译运行的特性更加严谨,写代码需要关注数据类型、内存细节;
  3. 现阶段先吃透输入输出、命名空间、bool、引用、函数重载,后续再深入学习类、对象等面向对象核心内容。
http://www.gsyq.cn/news/1551705.html

相关文章:

  • TC815万用表蜂鸣器驱动电路设计:从原理到实战避坑指南
  • 技术深度解析:为什么SavvyCAN是汽车CAN总线开发的最佳选择
  • 电源监控芯片TC1278/TC1279选型与应用指南:提升嵌入式系统可靠性
  • 2026年新消息:江苏综合物流服务企业怎么联系?全面解析与阿尔山码头推荐 - 品牌鉴赏官2026
  • 嵌入式通信系统经典架构:MPC821 PowerPC核心与CPM协同设计解析
  • 终极宝可梦合规解决方案:如何用PKHeX自动合法性插件轻松生成完美宝可梦
  • Microchip 24XX256 EEPROM选型、驱动与可靠性设计全指南
  • 深度学习车道线检测:从U-Net到行锚点模型的工业级实践
  • 乌鲁木齐报名 CPPM 注册采购经理哪家靠谱?机构选择避坑指南 - 众智商学院课程中心
  • 深入解析飞思卡尔PDK语音网关硬件:MPC8260架构、DSP协同与实战调试
  • ppt模板_0104_蓝色光球
  • MCP2120红外通信芯片:从IrDA原理到工业抗干扰应用实战
  • 5分钟掌握WorkshopDL:跨平台Steam创意工坊模组下载完全指南
  • 【毕业设计】美发门店管理系统 SpringBoot+Vue 完整源码(含论文+数据库,可运行)
  • 24CS32 EEPROM硬件特性、I2C驱动与嵌入式存储实战指南
  • SPI SRAM 23A1024/23LC1024 驱动开发与实战避坑指南
  • LLM与RNN混合模型在代码理解中的应用与优化
  • JTAG与EOnCE协同调试:从原理到MSC8101 DSP实战
  • Microchip 24XX256 I2C EEPROM选型、电路设计与软件驱动全解析
  • 研发效能与合规并重:ALM工具在强监管行业中的落地实践
  • OCAuxiliaryTools:3分钟掌握黑苹果OpenCore配置的终极指南
  • 总线分析器原理与实战:嵌入式调试中的逻辑时序洞察利器
  • 华为AI沉默之谜:表面低调,实则下着一盘改变格局的超级大棋
  • 【模拟电力变压器电气测试】使用电磁暂态程序(EMTP)对各种情景进行建模(包括:正常运行、一次绕组故障、铁芯故障)(Matlab代码实现)
  • YOLOv5模型昇腾部署全链路:从ONNX到ATC编译与.om推理
  • 表格数据处理技术:从传统方法到现代LLM应用
  • 【Java基础】为什么要学习Java?Java语言特点详细总结
  • 2026年新发布:诚信可靠的襄阳装修团队综合评估与选择建议 - 品牌鉴赏官2026
  • 工控机为什么大部分还在用Intel平台?
  • 算法札记:Kruskal 和 Prim 算法的正确性