C和C++区别
吃纸狂人
菜的抠脚
展开
-
string是否以‘\0’结尾
今天刷题,刷着刷着发现了一个问题,我好想对string这个了解不是很深,我之前是把它跟C语言中的char类型总是分不清,所以今天题也不刷了,试着了解它们俩到底有什么区别。 在C语言中char是以'\0'结尾的,这作为我们循环字符串时的一个结尾标志,那么string是否也以'\0'结尾呢? 首先我尝试打印,%s打印是以'\0'为结尾标志的而进行打印的,为什么会乱码??? printf只能输...原创 2019-07-20 10:38:34 · 1001 阅读 · 0 评论 -
C中的const和C++中的const
左值:放在赋值符号"="的左边.即写权限 1、限定写权限,将变量变成只读 const int a=10; int const a=10;两个定义方法都可以均表示a是一个常变量不可修改。 2、基本数据类型对于const透明 (int const *p=&a)==(const int *p=&a)3、const修饰它的直接右边,使其只读 const int *p=&a...原创 2018-06-12 20:22:28 · 140 阅读 · 0 评论 -
struct和类的区别
1、 C的struct与C++的class的区别 (1)C中的struct只是一种数据类型,不能用来定义函数,C++中的class可以 (2)C中的空struct大小为0,但是在C++中空struct和空class都有一个字节,占位符 .c中我的编译器居然都不通过,但是C语言中空结构体是0字节 .cpp 2、C++中的struct和class的区别 默认的继承权限 struc...原创 2019-07-30 15:37:42 · 964 阅读 · 0 评论 -
malloc/free与new/delete的区别
(1)malloc/free是C++/C语言的标准库函数,new/delete是C++的运算符 (2)malloc的返回值是void*需要我们自行转换,new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配无须进行类型转换,故new是符合类型安全性的操作符。 (3)new调动operator new函数进行分配空间,调用构造函数,delete调用析构函数,然后调用operato...原创 2019-07-30 16:11:11 · 152 阅读 · 0 评论