0%

C++复习(初识C++)

1、指针

可以隐式地转换为bool类型,空指针转换为false,非空指针转换为true

2、引用

在定义是必须初始化,并且初始化时只能绑定左值

引用不是一种数据类型,实际上是一种隐式的指针,但是引用更加简单、直接,而指针是一种数据类型

3、左右值

左值:指向内存位置的表达式 如int a = 2 中的a

右值:具体数值 如2,3,2*3

4、const

1
2
3
4
5
`const int a;`
`int const a;`
`const int *a;`//底层const 修饰的是指针指向的变量 即变量不可修改 为常量
`int * const a;`//顶层const 修饰指针本身 即指针不能指向别的变量 指向变量不一定为常量
`int const * const a ;``

前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。如果应试者能正确回答这些问题,那么他就给我留下了一个好印象。顺带提一句,也许你可能会问,即使不用关键字 const,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关键字const呢?我也如下的几下理由:
(1) 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)
(2) 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
(3) 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。

5、内联函数inline

一般用于结构简单语句少的函数

==注意:递归函数不可以定义为内联函数==