C++ 基础语法&特性(1)-面向过程
最近在学C++,以为会像C语言一样特别好入门,结果发现C++竟然是世界上最复杂的语言。
对我这种半路出身的搬砖人来说,简直刷新对语言的认知,特此用一系列博文,记录C++语言的基础语法和特性。
文章内容基本来自教材,我只是知识的整理和搬运工。
本系列文章适合有一定语言基础(如java、php、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; }
欢迎各位指点!