Merge pull request #56 from AndyJMR/master

Modify the bold in item 1
This commit is contained in:
kelthuzadx 2020-11-14 13:07:42 +08:00 committed by GitHub
commit 634714d0ac
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -138,7 +138,7 @@ void f(T param); //传值
const char* const ptr = //ptr是一个常量指针指向常量对象
" Fun with pointers";
````
在这里,解引用符号(\*的右边的const表示ptr本身是一个constptr不能被修改为指向其它地址也不能被设置为null解引用符号左边的const表示ptr指向一个字符串这个字符串是const因此字符串不能被修改。当ptr作为实参传给f像这种情况ptr自身会传值给形参根据类型推导的第三条规则**ptr**自身的常量性将会被省略所以param是**const char* **。也就是说一个常量指针指向const字符串在类型推导中这个指针指向的数据的常量性将会被保留但是指针自身的常量性将会被忽略。
在这里,解引用符号(\*的右边的const表示ptr本身是一个constptr不能被修改为指向其它地址也不能被设置为null解引用符号左边的const表示ptr指向一个字符串这个字符串是const因此字符串不能被修改。当ptr作为实参传给f像这种情况ptr自身会传值给形参根据类型推导的第三条规则**ptr**自身的常量性将会被省略所以param是** const char\* **。也就是说一个常量指针指向const字符串在类型推导中这个指针指向的数据的常量性将会被保留但是指针自身的常量性将会被忽略。
## 数组实参
上面的内容几乎覆盖了模板类型推导的大部分内容,但这里还有一些小细节值得注意,比如在模板类型推导中指针不同于数组,虽然它们两个有时候是完全等价的。关于这个等价最常见的例子是在很多上下文中数组会退化为指向它的第一个元素的指针,比如下面就是允许的做法: