C++学习
做突出一个
这个作者很懒,什么都没留下…
展开
-
C++之变长数组与变长结构体
在C99标准中,新加入了变长数组和变长结构体变长数组如下:其中a[n]就是变长数组,b[10]就是定长数组int main() { int b[10]; int n = 10; int a[n]; }该变长数组也可以对应于malloc的动态空间分配,等价于int *a = malloc(n * sizeof(int));二者的区别:1.变长数组从栈上分配空间,malloc...原创 2018-03-18 19:54:52 · 4374 阅读 · 1 评论 -
C++之运算符重载
1.只能使用成员函数重载的运算符有=、()、[]、->、new、delete;2.单目运算符最好重载为成员函数;3.对于复合的赋值运算符如+=、-=、*=、/=、&=、!=、~=、%=、>>=、<<=建议重载为成员函数;4.对于其它运算符,建议重载为友元函数。 运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,...原创 2018-03-18 20:30:31 · 151 阅读 · 0 评论 -
C++之内存分配与释放
自己常用的就是new delete和malloc free程序占用内存的五个区:一个由C/C++编译的程序占用的内存分为以下几个部分: 1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2.堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS(操作系统)回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表...原创 2018-03-18 21:54:59 · 4523 阅读 · 0 评论 -
C++之volatile
volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。声明时语法:int volatile vInt; 当要求使用 volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取...原创 2018-03-18 23:00:06 · 852 阅读 · 0 评论 -
Clion编译出错:nullptr not declared in the scope
问题:用clion编译C++程序,出现错误:nullptr not declared in the scope错误查找:1.检查CMakeLists是否是CMAKE_CXX_STANDARD 11发现是这样设置的,没有问题2.在Clion的settings中查看MinGW的版本,发现版本过低,所以不支持C++ 11的新特性解决:重新下载高版本的MinGW,在setting->Build,Ex...原创 2018-05-06 19:22:30 · 1223 阅读 · 0 评论