前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++primer学习笔记(一)

C++primer学习笔记(一)

作者头像
震八方紫面昆仑侠
发布2020-07-23 00:12:21
4770
发布2020-07-23 00:12:21
举报
  • 假设p是指针,当delete p;时,后面一定要p=NULL将p指向空
  • cin cout cerr 都是iostream类型的对象。cout<<"hello world"<<endl; 其中cout是左操作数对象,<<是操作符,作用是将右操作数写到左操作数对象,"hello world"是右操作数,前面半句话的意思是将hello world写入cout对象。同理,<<endl是将endl写入cout,endl表示刷新缓冲区并换行。
  • std::cout ::是作用域操作符,表示std名空间下的cout,用来区别其它名空间同名变量。
  • 注释不能嵌套:/* /*...*/ */ 是错误的
  • 表示整数、字符和布尔值的算术类型合称为整形。区分类型是因为只有知道某地址值的类型,才能知道需要多少位表示这个变量和如何解释这些位。
  • 整形赋值超出取值范围,会被赋值数对该类型数值数目取模后的值。
  • long类型运行时代价远高于int类型。以0开头的字面值常量表示八进制、以0x开头的表示十六进制。任何字符可以表示为 \ooo【ooo表示一个八进制数】
  • 对象是内存中具有类型的区域。初始化不是赋值,初始化是创建并赋值。定义在函数体外的内置变量自动初始化成0,定义在函数体内的内置变量不进行自动初始化,类类型(string)调用默认构造函数初始化。
  • const把一个对象转换成一个常量【const int bufSize = 512】。 全局变量加const作用域只在本文件。再加extern可在整个程序访问。非const变量默认为extern。
  • 引用初始化后始终绑定到初始化的对象,不能改变【引用本身不占存储单元】。const对象必须由const引用指向【避免一个能修改,一个不能修改,既对象本身和代表其的引用必须同时为const】。普通引用不能初始化为常量,const引用可以。
  • typedef用来定义类型的同义词。
  • 头文件用于声明,不是定义,因而可以出现多次。定义的语句不应该放在头文件里,出现两次会导致多重定义链接错误。例外是头文件可以定义类,还有值在编译时就已经知道的const对象,还有inline函数。变量是声明还是定义看是否有extern,但不是绝对的,函数就看有无大括号{}
  • 两个迭代器指向同一个元素就相等【==】,否则不等。任何改变vector长度的操作都会使已存在的迭代器失效。difference_type存储迭代器间距离。
  • 设计良好的程序只有在强调速度时才在类实现的内部使用数组和指针。数组下标的正确类型是size_t。
  • 预处理器变量NULL在编译时会被数值0替换。指针做减法操作得到的是ptrdiff_t类型。指针p - 2 等效p[-2]。
  • 定义的多个变量具有相同的类型,就可以在for循环的初始化语句中同时定义他们。for(int a, b, c ...)
  • C++强制要求指向const对象的指针也必须具有const特性,可以把非const对象地址赋给const指针。
  • const指针:int *const cur = &cuss; 指向int型变量的指针,并且本身不能修改。
  • C风格字符串:const char *cp = "some value"; strlen(用于计算c风格字符串字符个数,不包括串最后的'\0')
  • 动态数组:int *p = new int[任意表达式,变量等] delete [] p;
  • new/delete是操作符,不但控制内存而且执行构造函数和析构函数,malloc/free是标准库函数,不在编译器控制权限内,不能执行构造和析构。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL从删库到跑路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档