C++ 基础语法&特性(1)-面向过程

最近在学C++,以为会像C语言一样特别好入门,结果发现C++竟然是世界上最复杂的语言。

对我这种半路出身的搬砖人来说,简直刷新对语言的认知,特此用一系列博文,记录C++语言的基础语法和特性。

文章内容基本来自教材,我只是知识的整理和搬运工。

本系列文章适合有一定语言基础(如java、php、c)的初级码农,大佬请略过!

C++相关文章

C++简介

   C++来源于C语言,尽量兼容C语言(这一点也增加了C++的复杂度),是编译式、大小写敏感,完全支持面向对象。

  支持面向过程、面向对象、泛型编程。(支持命名空间)

  有引用、有指针、有常量。

C++面向过程部分简单语法

//#include <系统包,不带.h>
//#include "自定义包的路径"
using namespace std;        //引用命名空间
using std::cout;            //单独引用命名空间里的标识符,也可直接std::cout使用

/*
    命名空间可以嵌套 
    如果是匿名命名空间,编译器自动增加using语句
    同名命名空间,相当于扩充
*/ 
namespace [命名空间名字]{
}

//入口函数
int main(){
    //强制类型转换
    static_cast<类型>(表达式)
    类型(表达式)
    (类型)表达式
    intVar = DoubleVal;//默认转换方式
    
    const_cast<类型名>(表达式)
    //可以将常量指针和引用转换为非常量
    
    const int A=10;//常量变量的常量性无法改变
    int *C = const_cast<int *>(&A)    //通过C修改值后,虽然地址与A一样,但值不一样 
    
    /*
        const
        修饰其左侧内容(const在最左侧则修饰其右侧内容)
        const 类型 & = 类型 &正确,但不可反向赋值 
    */
    const int * 变量名;            //修饰int,说明int值不可变
    int * const 变量名;            //修饰指针,说明指针不可指向其他地址
    const int * const 变量名;  //两个都不可修改
 
    /*
        引用
        不能是空引用(声明时必须有值),也不可指向引用的引用
        约等于 int * const 变量名,即不可修改地址
    */
    类型 &标识符 = 变量名;
    const int & 变量名         //地址和值均不可改
     
    /*
        函数
    */
    //默认值
    返回值类型 方法名(int a,int b=全局变量,int c=7);    //有默认值的形参,必须在右侧。可以是全局变量,不可是函数内局部变量
     
    //内联
    inline 返回值类型 方法名(参数表);  //小函数,有循环、switch通常不定义内联
     
    //重载,方法名+形参类型列表构成唯一签名
    返回值类型 方法名A(int);
    返回值类型 方法名A(float);
    返回值类型 方法名A(int &);//错误,引用与非引用无法区分
    方法名A(6.0);//赋值兼容下,系统自动变量提升,但可能报错,该参数为double,可自动转为int或float,方法调用存在二义性
     
    return 0;
}

  

posted @ 2021-01-16 22:11  寻觅~~  阅读(135)  评论(0编辑  收藏  举报