C++ ——从C到C++

ops/2025/2/12 19:22:29/

1、C++的学习方法

(1)C++知识点概念内容比较多,需要反复复习

(2)偏理论,有的内容不理解,可以先背下来,后续可能会理解更深

(3)学好编程要多练习,简单的也要手写确认一遍,记笔记

(4)学习过程中不可能每个知识点都100%懂,有些内容可能经过多年的程序开发实践才领悟,所以即使有不懂的,也按进度计划前行

2、C和C++的区别 

C语言是面向过程编程(POP)

C++是面向对象编程(OOP)

那么面向过程编程和面向对象编程有什么区别呢?

        举个例子:比如做饭、洗衣服、扫地三件事

C语言面向过程编程,会这样做:

        自己做饭,自己洗衣服,然后自己扫地

        把事情分条目,按步骤一步一步来做,有条不紊的进行完成。优点:把握细节,符合计算机的思维,运行效率高;缺点:开发效率低

C++面向对象编程,会这样做:

        找个厨师对象来,让他来做饭,找个保姆对象来,让他来洗衣服和扫地

        优点:调用不同的对象来处理不同的事物,符合人的思维;缺点:运行效率低,但开发效率高

3、C++基础

C++的基础与C语言大致一样,例如:注释、变量、常量、整型、实型、字符型、布尔类型、算数/赋值/比较/逻辑运算符

3.1 基础格式 

#include <iostream>  //iostream:输入输出流文件 ,相当于stdint.h
using namespace std;  //命名空间
int main()  //入口函数
{
    cout << "Hello World!" << endl;  //cout:输出;endl:换行
    return 0;
}
Ctrl+a:全选
Ctrl+i:格式化文档

3.2 C++关键字

3.3 转义字符

转义字符意义ASCII码值(十进制)
\a响铃(BEL)007
\b退格(BS),将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF),将当前位置移到下一行开头010
\r回车(CR),将当前位置移到本行开头013
\t水平制表(HT)009
\v垂直制表(VT)011
\'单引号039
\"双引号034
\\反斜杠092

3.4 输入输出语句

C++中除了可以使用C语言中printf、scanf进行输入输出外,又新增了一套新的,更容易使用的输入输出库,即iostream

        输出:cout << 字符串信息;

        输入:cin >> 变量;

3.5 C++新的赋值语法 

    //方法一
    int c(2); //相当于给c赋值2
    int d(c); //相当于把c的值赋值给d
    //方法二
    int e{d};  //相当于赋值
    //()和{}赋值的区别:{}更安全,{}为一致性赋值,数据窄化赋值是会警告
    double f=3.14;
    int g(f);
    cout<<g<<endl;  //3
//    int h{f};  //会报错(数据窄化赋值是会警告)

3.6 字符串类型

3.6.1 字符串输入输出

    string uname;
    cin>>uname;  //输入
    cout<<"姓名:"<<uname<<endl;  //输出
    //但是C++中提供了一种可以包含空白的字符串的输入方法:getline
    string addr;
    getline(cin,addr);
    cout<<"地址:"<<addr<<endl;
    //字符串类型string需要导入头文件string
    string str1="admin";
    cout<<str1<<endl;
    //获取字符串的长度
    cout<<"获取字符串的长度:"<<str1.length()<<endl;
    cout<<"获取字符串的长度:"<<str1.size()<<endl;
    //访问字符:索引和at()方法
    //区别:at()方法更安全
    cout<<str1[0]<<endl;  //索引
    cout<<str1.at(0)<<endl;  //at()方法
//    cout<<str1[19]<<"***"<<endl;  //访问超过最大索引值时,是随机值
//    cout<<str1.at(20)<<endl;  //程序终止执行,会爆出out off range错误

3.6.2 字符串的遍历

    //字符串的遍历
    for(int i=0;i<str1.size();i++){
        cout<<str1.at(i)<<"   ";
    }
    cout<<endl;
    //遍历的简便写法,脱离下标,推荐使用
    for(char c:str1){
        cout<<c<<"   ";
    }
    cout<<endl;

3.6.3 数字字符串与整数之间的转换

    //需要导入字符串流头文件sstream
    //(1)将整数转成字符串类型
    int count=123;
    stringstream ss;  //字符串流
    ss<<count;
    string res1=ss.str();
    cout<<res1<<endl;  //字符串类型的"123"
    //(2)将字符串转成整数
    string ww="1234";
    istringstream is(ww);
    int res2;
    is>>res2;
    cout<<res2<<endl; //数字类型1234

http://www.ppmy.cn/ops/157839.html

相关文章

Spring常用注解和组件

引言 了解Spring常用注解的使用方式可以帮助我们更快速理解这个框架和其中的深度 注解 Configuration&#xff1a;表示该类是一个配置类&#xff0c;用于定义 Spring Bean。 EnableAutoConfiguration&#xff1a;启用 Spring Boot 的自动配置功能&#xff0c;让 Spring Boo…

Git 分布式版本控制工具使用教程

1.关于Git 1.1 什么是Git Git是一款免费、开源的分布式版本控制工具&#xff0c;由Linux创始人Linus Torvalds于2005年开发。它被设计用来处理从很小到非常大的项目&#xff0c;速度和效率都非常高。Git允许多个开发者几乎同时处理同一个项目而不会互相干扰&#xff0c;并且在…

Redis 持久化机制详解

Redis 持久化机制详解 Redis 作为一个高性能的内存数据库&#xff0c;天然存在内存数据易失的问题。为了在服务重启、故障或崩溃后能够恢复数据&#xff0c;Redis 提供了多种持久化机制&#xff0c;主要包括 RDB&#xff08;快照持久化&#xff09;、AOF&#xff08;只追加文件…

物联网综合性应用之网关设计

最近由于项目的需要&#xff0c;设计了一款基于rv1106的物联网网关 该产品需要集合IOT功能 BLE定位 能耗监测io控制等&#xff0c;音视频通话&#xff08;基于webrtc&#xff09; 由于概念机阶段不想自己开板于是乎找到万能的淘宝相中了顶配版的luckfox pico w. 理由是 1 、…

Docker 系列之 docker-compose 容器编排详解

文章目录 前言一、Docker-compose简介二、Docker-compose 的安装三、Docker-compose卸载四、Docker-compose常用命令4.1 Docker-compose命令格式4.2 docker-compose up4.3 docker-compose ps4.4 docker-compose stop4.5 docker-compose -h4.6 docker-compose down4.7 docker-co…

【Kubernetes的SpringCloud最佳实践】有Service是否还需要Eureka?

在 Kubernetes 中部署 Spring Cloud 微服务时&#xff0c;是否还需要 Eureka 取决于具体场景和架构设计。以下是详细的实践建议和结论&#xff1a; 1. Kubernetes 原生服务发现 vs Eureka Kubernetes 自身提供了完善的服务发现机制&#xff08;通过 Service 资源&#xff09;&…

DeepSeek在FPGA/IC开发中的创新应用与未来潜力

随着人工智能技术的飞速发展&#xff0c;以DeepSeek为代表的大语言模型&#xff08;LLM&#xff09;正在逐步渗透到传统硬件开发领域。在FPGA&#xff08;现场可编程门阵列&#xff09;和IC&#xff08;集成电路&#xff09;开发这一技术密集型行业中&#xff0c;DeepSeek凭借其…

arm板部署离线瓦片地图

引言&#xff1a;技术使用qt的qml自带Map组件&#xff0c;没必要像网上那样用纯qt编写各种复杂的代码&#xff0c;直接部署一个自己的地图瓦片源&#xff0c;像调库一般&#xff0c;用几行代码就能简单的实现类似高德的离线地图效果&#xff0c;支持旋转、倾斜&#xff0c;缩放…