美文网首页
Cpp primer阅读总结(一)

Cpp primer阅读总结(一)

作者: 深颐 | 来源:发表于2018-05-03 00:08 被阅读0次

    关于指针和引用:

    对理解引用的一句很形象准确的话,引用是一个对象别名,它是一个名字而不是一个对象,所以它在声明时一定要初始化。

    指针则是一个对象,它有着自己的地址和存储空间,它所存放的内容一般为地址值,它在声明时可以不初始化。

    想要理解一个复合类型最简洁的方法是从右往左去读,例如const double *const ptr = &pi ;,从右开始第一个是const代表它是一个常量对象,第二个*代表它是个常量指针,第三个const double代表这个常量指针指向的是一个双精度浮点型对象;再如指向指针的引用:int* &ref = ptr;

    关于const:

    const在默认状态下仅对单文件内有效,再多个文件内定义了同名const对象相当于独立的对象,想要采用一个const作变量多个文件共同访问则需要在所有文件中加上extern关键字并保持在一个地方定义其他文件声明。

    在c11中新添加constexpr作用于指针上等效于定义了一个顶层const的对象,即指针所存的地址不能改变。

    关于类型别名:

    目前有两种方法来定义类型别名,传统方法是使用typedef 原类型名 别名,在c11中新加入了别名声明,using 别名=原类型名。

    采用别名代入复合类型时容易产生误解,如:

    tpyedef char* pstr;

    const pstr cstr = 0;

    const char* cstr = 0;

    前者代表cstr是一个顶层const,所存地址是一个char*的地址且不能修改。后者代表cstr是一个底层const,所指向的是一个char*,char*的内容不能通过ctr修改。

    关于string类:

    一些对于string中的单个字符的操作被封装在cctype文件里面,包括检查数字、字母、大小写、标点符号、空格、可打印。

    string的初始化类型有直接赋值和拷贝赋值两种。

    string和字符串数组可以拼接,返回的结果也是string。

    取得string字符数的size函数返回类型是根据不同平台定义的,在比较时最好选择unsigned的变量以防出现溢出。

    相关文章

      网友评论

          本文标题:Cpp primer阅读总结(一)

          本文链接:https://www.haomeiwen.com/subject/qghcrftx.html