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
相关推荐
007php00736 分钟前
Docker、Ollama、Dify 及 DeepSeek 安装配置与搭建企业级本地私有化知识库实践
运维·服务器·开发语言·后端·docker·容器·云计算
众乐乐_200841 分钟前
JVM栈帧中|局部变量表、操作数栈、动态链接各自的任务是什么?
java·开发语言·jvm
魏翾蒨1 小时前
VBA语言的数据可视化
开发语言·后端·golang
致奋斗的我们1 小时前
项目:利用rsync备份全网服务器数据
linux·运维·服务器·开发语言·github·rsync·openeuler
獨枭1 小时前
在 MFC 应用中集成 WebView2
c++·mfc
Bluesonli2 小时前
第 9 天:UE5 物理系统 & 碰撞检测全解析!
开发语言·学习·游戏·ue5·虚幻·unreal engine
魏翾蒨2 小时前
PHP语言的数据库交互
开发语言·后端·golang
清泓y2 小时前
UE5--浅析委托原理(Delegate)
c++·ue5·ue4
关关钧2 小时前
【R语言】卡方检验
开发语言·r语言
q567315232 小时前
无法在Django 1.6中导入自定义应用
android·开发语言·数据库·django·sqlite