c++在编程语言排行榜上稳居前4,可见其在变成领域的重要性,下面我们一起来了解c++。
首先,在了解之前,我们要先知道在哪里书写自己的代码,以vs为例
以前点击源文件选择创建第一个c++文件即可,值了的cpp代表cplusplus的意思。
ok,让我们来了解c++与c的第一个不同,命名空间
在c语言中想要以rand来命名变量会出现报错,因为有个函数名叫rand,但在c++中有个namespace,可以生成一个自己的域(现在我们知道的有局部域,全局域),每个变量名只能在一个域里出现一次,所以我们可以用namespace来命名一个新的域
这里的域名是可以自己取的,为了简单,我就在取了个a,namespace的使用与结构体类似,但注意,namespace的使用最后没有分号。
想要在主函数中使用域中的变量,结构(域名::变量名),如上图所示,中间是两个冒号。如果你觉得使用每个变量名都这么写有点麻烦了,你可以这么做
在没有名字冲突的情况下可以在全局域里加这串代码,相当于将这个域里的东西同步到全局域,大家知道,在函数内使用变量会先在局部域里寻找,如果找不到则会到全局域里找,如果没有这串代码且没有前面的域名,系统就无法找到该变量,加上这串代码系统会在局部域和全局域完后还会在该域里寻找,一般仅在私下练习时使用。
2.c++的输入输出
想用c++输入输出,首先得在文件包含iostream
接着,要知道c++的输入与输出是在std域里面,想要调用需要在前面加上std::,输入(cin),输出(cout)。下面来看这两个代码
这就相当于c语言里的scanf和printf,代码执行结果如下
如果在需要多次输入输出,你觉得每个都接std麻烦,可以像上面一样,用using的方法,在这里就不演示了。最后的endl可以简单理解成printf的换行符,当然,你也可以在代码中这样写<<"\n",也能起到换行的目的,使用cout和cin时不需要在意是什么类型的变量,因为它会自动选择。
&引用
&引用可以在许多时候使代码更简单高效
这就是引用最简单的形式,相当于是给a取了别名叫b,对b的修改可以影响到a,如图
我们给a取别名b,最后将20赋值给b,让我们看看a的结果
可以看到,无论一开始给a的赋值是多少,a的值都会随着b的改变而改变,而引用的应用最多在于函数的传参,可以减少空间的使用及增加代码的可读性,下面是个小小的例子,我们以前用的swap函数
想要使形参的改变能够影响到实参,我们一般需要传实参的地址过去,但传址会显得有些麻烦且需要而外的空间开销,我们只需这样
且在传参时不需要加取地址符号,这是,a和b时传的参数的别名,对别名的修改可直接影响到本体,且可读性增加了不少。
下面是我认为引用和指针的几点不同
语法概念上引⽤是⼀个变量的取别名不开空间,指针是存储⼀个变量地址,要开空间。
引⽤在定义时必须初始化,指针建议初始化,但是语法上不是必须的。
引⽤在初始化时引⽤⼀个对象后,就不能再引⽤其他对象;⽽指针可以在不断地改变指向对象。
引⽤可以直接访问指向对象,指针需要解引⽤才是访问指向对象。
sizeof中含义不同,引⽤结果为引⽤类型的⼤⼩,但指针始终是地址空间所占字节个数(32位平台下 占4个字节,64位下是8byte)
指针很容易出现空指针和野指针的问题,引⽤很少出现,引⽤使⽤起来相对更安全⼀些