C++初识

 C++概述:

C++是“C Plus Plus"的简称。顾名思义,C++是在C语言的基础上增加新的特性,玩出新花样。C++的设计目标是保持在C语言简洁性的基础上,提供更多的功能和灵活性。

C与C++的区别:

CC++
语法过程化的编程语言面向对象的编程语言
编程风格 注重过程化的编程风格,最主要关注算法和函数的设计C++标准库比C标准库更加丰富和功能强大,包含了大量容器,算法和其他常用功能模块
异常处理     没有内置的异常处理机制,通常使用返回错误码的方式来处理错误C++支持异常处理机制,可以捕获和处理程序中的异常情况
兼容性C++是C的超集,也就是说,任何一个符合C语法规则的程序也是一个合法的C++程序。C++可以调用C语言编写的函数,并且可以与C语言代码共享。
选择C++相对于C来说更加强大和灵活,适用于更复杂的应用场景,但对于一些简单的、性能要求较高的程序,C语言可能更适合。选择使用哪种语言,取决于具体的需求和编程的目标。

基本语法

C++编译的四个阶段

1.预处理阶段(Preprocessing):

        在这个阶段,预处理器会处理源文件中的预处理指令,比如包含头文件、宏替换、条件编译等。预处理器会生成一个经过预处理的源文件。预处理的结果是一个没有注释和宏定义,所有头文件都被展开的纯净C++代码文件。

2.编译阶段(Compilation):

        编译器会将经过预处理的源文件转换为汇编代码(Assembly code),这个阶段包括词法分析、语法分析、语义分析等步骤,最终生成汇编代码。

3.汇编阶段(Assembling):

        汇编器会将汇编代码转换为机器语言代码,生成目标文件(Object file),这个文件包含了二进制形式的指令和数据。

4.链接阶段(Linking):

       链接器会将目标文件与库文件进行链接,解析外部引用、符号解析等,生成可执行文件。在C++中,链接器还会处理类的实例化、模板的具体化等特定于C++的内容。

这四个阶段一般都是自动完成,由编译器和链接器自动处理。编译器通常会调用预处理器、汇编器和链接器来完成整个编译过程。

"HelloWorld”的编写

你可以使用下列代码编写一个简单的C++程序

#include<iostream>


int main(){
    std::cout<<"Hello, World!"<<std::endl;
    return 0;
}

将以上代码保存为一个以.cpp为后缀的文件(比如helloworld.cpp),然后使用C++编译器运行即可。

标准库

C++中的标准库是一组预定义的功能库,提供了丰富的功能和工具,方便我们开发C++程序。

                标准库-类和函数的集合(C++ standard Library)

                标准模板库(Standard Template Library)

例如:

头文件<iostream>、<string>
容器vectory、list、map等
其他日期和时间库、输入输出函数、数学函数等

命名空间

        C++种的命名空间是用来避免命名冲突的一种机制。当在一个程序中使用了不同的库或者代码模块,可能会存在相同的函数、类、变量等命名,这个时候可以用命名空间来区分他们。

在C++种使用关键词namespace来定义命名空间

#include<iostream>


//定义一个命名空间
namespace A{
    void func(){
        std::cout<<"This is function A"<<std::endl;
    }
}
//定义另一个命名空间
namespace B{
    void func(){
        std::cout<<"This is function B"<<std::endl;
    }
}
int main(){
    //调用A命名空间中的函数
    A::func();

    //调用B命名空间中的函数
    B::func();
    
    return0;
}

总结:通过使用命名空间,我们可以将具有相同名称的函数或者其他实体进行区分,避免了命名冲突的问题。

std的意思

        在C++中,std是C++标准库(Standard Library)中命名空间(Namespace)。

        C++标准库中的函数、类、变量等被放在了std命名空间中,通过std::前缀来访问这些内容。

C++关键词

   关键字:被C++语言赋予了特定含义的英文单词。

        基本数据类型关键字:int、char、float、double、bool等。

        控制流关键字:if、else、switch、case、default、while、do、for等。

        函数关键字:void、return。

        类和对象关键字:class、struct、public、private、protected、new、delete等。

        命名空间关键字:namespace、using。

        异常处理关键字:try、catch、throw。

        其他关键字:static、const、virtual、extern等。

语法符号

标识符

在编程语言中用来命名变量、函数、类、对象等各种实体的名称

int myVariable;//变量名                  void myFunction();   //函数名

class MyClass{};   //类名                   MyClass myObject;  //对象名  

标识符通常由字母、数字、$和下划线组成

        a~z 、 A~Z 、0~9、$ 、_

规定:

1、数字不能开头;                        2、不能包含空格;

3、区分大小写;                         4、不能使用关键字

建议:

1、遵循一些命名规范;

如使用驼峰命名法或下划线命名法,以提高代码的可读性和一致性。

数据类型

                数据类型决定了变量的大小和操作

基本数据类型名称
整型int、short、long、longlong
浮点型float、double、longdouble
字符型char
布尔型bool
空类型void
 布尔类型

        作用:布尔数据类型代表真或假的值

bool类型只有两个值:

*true --- 真(本质是1)

*false --- 假(本质是0)

bool类型占 == 1个字节 == 大小

复合数据类型

说明

数组一组具有相同类型的元素
结构体一种用户自定义的数据类型,可以包含多个不同类型的成员
枚举一种用户自定义的数据类型,可以表示一组命名的常量值
指针存储内存地址的变量
引用为对象或变量起一个别名
用于封装数据和方法的用户自定义数据类型
联合一种特殊的数据类型,可以在相同的内存位置存储不同类型的数据

常量

        常量是指在程序运行期间其值不可被修改的数据

C++定义常量有两种方式

1.#define 宏常量:#define 常量名 常量值

        通常在文件上方定义,表示一个常量

//1、宏常量


#define day 7

int main(){
       cout<<"一周里总共有"<<day<<"天"<<endl;
       //day = 8;//报错,宏常量不可修改
        
       return 0;
}

2.const 修饰的变量 const 数据类型 常量名=常量值

通常在变量定义前加关键字const,修饰该变量为常量,不可修改

//2.const修饰变量

int main(){
    const int month=12;

    cout<<"一年里共有"<<month<<"个月份"<<endl;
    //month = 24;//报错,常量不可修改

    return 0;
}

变量

        变量是用来存储和表示数据的容器

整数类型:
int mylnt;//声明一个整数变量
int mylnt =10;//声明并初始化一个整数变量
int mylnt1,mylnt2;//声明多个整数变量

浮点数类型:

float myFloat;//声明一个单精度浮点数变量
float myFloat = 3.14;//声明并初始化一个单精度浮点数变量
double myDouble;//声明一个双精度浮点数变量
double myDouble = 2.71734;//声明并初始化一个双精度浮点数变量

字符类型:
char myChar;//声明一个字符变量
char myChar = "a";//声明并初始化一个字符变量

布尔类型:
bool b1 = true;
bool b2 = false;

运算符

                大部分运算符在C和C++中是相同的

运算符名称 说明
算术运算符+、-、*、/、%
赋值运算符=、+=、-=、*=、/=、%=。
比较运算符==、!=、>、<、>=、<=
逻辑运算符&&、||、!
位运算符按位与(&)、按位或( | )、按位取反(~)、按位异或(^)、左移(<<)、右移(>>)等
条件运算符用于根据条件进行选择,如三元运算符(条件?结果1:结果2)
自增自减运算符自增(++)、自减(--)
成员运算符用于访问类、结构体和联合体的成员,如成员选择运算符(.)、成员指针运算符(->)。

输入输出

                大部分运算符在C和C++中是相同的,但也存在一些细微的差异

cc++
scanf和printf函数进行输入输出使用cin和cout对象进行输入输出
使用%d、%f等格式化字符来表示不同类型的数据使用>>和<<运算符来输入输出不同类型的数据
布尔运算符的的真值为0以外的所有值,结果为1(真)或(0)假布尔运算符的真值只能是true或false,结果为1或0

综合案例

生成随机数

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

int main(){
    //使用随机数引擎和分布器生成随机数
    std::random_device rd;//随机数引擎
    std::mt19937 gen(rd());//使用随机数引擎生成随机数
    std::uniform_int_distribution<int>dis(1,100);//生成1到100的随机整数

    //生成随机数
    int randomNum = dis(gen);
    
    //输出随机数
    std::cout<<"随机数"<<randomNum<<std::endl;

    return 0;
}

拓展案例-猜大小

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

//生成1~100随机整数
int randomNum(){
    random_device rd;
    mt19937 gen(rd());
    uniform_int_distribution<int>dist(1,100);
    int random_Num=dist(gen);
    return random_Num;
}

int main(){
    //调用函数生成随机数
    int ra = randomNum();
    cout<<"随机数:"<<ra<<endl;

    while(true){
        cout<<"输入一个随机数"<<endl;
        int num;
        cin>>num;
        if(ra>num){
            cout<<"猜小了。"<<endl;
        }elseif(ra<num){
            cout<<"猜大了。"<<endl;
        }else{
            cout<<"恭喜你猜对了!"<<endl;
            break;
        }

    }
    return 0;
}
  • 47
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值