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

C++ ——从C到C++

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.kler.cn/a/542529.html

相关文章:

  • ZooKeeper 技术全解:概念、功能、文件系统与主从同步
  • STM32系统架构介绍
  • 基于 STM32 平台的音频特征提取与歌曲风格智能识别系统
  • elasticsearch安装插件analysis-ik分词器(深度研究docker内elasticsearch安装插件的位置)
  • Linux --- 如何安装Docker命令并且使用docker安装Mysql【一篇内容直接解决】
  • 大语言模型RAG,transformer
  • chrome-mojo idl
  • kafka生产端之架构及工作原理
  • DevSecOps,DevOps的进阶
  • 网络编程-day5-sqlite3数据库
  • DeepSeek 大模型在 Mac 上的部署和运行
  • python基础入门:8.1项目1:爬虫与数据分析
  • 无人机避障——基于ESDF地图的JPS算法前端路径规划
  • 每日一题——有重复项数字的全排列
  • Kafka 中基于 Segment 和 Offset 查找消息的过程
  • 解决 keep-alive 缓存组件中定时器干扰问题
  • STM32、GD32驱动TM1640原理图、源码分享
  • 新数据结构(4)——Java继承
  • Python实现GO鹅优化算法优化支持向量机SVM分类模型项目实战
  • 港中文腾讯提出可穿戴3D资产生成方法BAG,可自动生成服装和配饰等3D资产如,并适应特定的人体模型。
  • Java 读取 PDF 模板文档并替换内容重新生成 PDF
  • CES Asia 2025:科技盛宴助力中国数字经济腾飞
  • 中间件-安装Minio-集成使用(ubantu-docker)
  • Vue项目--动画效果的改变
  • Swift的方法派发机制
  • 模块化的基本概念