c/c++理解
cheems~
业精于勤,荒于嬉;行成于思,毁于随。
展开
-
cout,printf的++,--优先问题
#include<iostream> using namespace std; int n; class myint { friend ostream& operator<<(ostream& cout, myint mi); private: int mynum; string name; public: myint() { mynum = 0; name = "*********"; } myint& operator++() {原创 2021-05-11 19:12:31 · 176 阅读 · 0 评论 -
拷贝构造函数与移动构造函数
拷贝构造函数与移动构造函数拷贝构造函数与移动构造函数的区别参考 拷贝构造函数与移动构造函数的区别 拷贝构造函数的形参是一个左值引用 拷贝构造函数完成的是整个对象或变量的拷贝 … … 移动构造函数的形参是一个右值引用 移动构造函数是生成一个指针指向源对象或变量的地址,接管源对象的内存,相对于大量数据的拷贝节省时间和内存空间。 参考 C++11–移动构造函数 拷贝构造函数与移动构造函数 Test(Test&& T):m_ptr(T.m_ptr) { T.m_ptr = nullptr; c原创 2021-05-07 22:38:07 · 2035 阅读 · 0 评论 -
右值引用
右值引用 int &b = 5; int &&b = 5; 直接引用一个右值是不行的 所以要使用&&右值引用原创 2021-05-07 21:48:44 · 123 阅读 · 0 评论 -
由临时对象引发的对常引用的思考
关于临时对象返回和常引用问题 上代码 #include<stdio.h> #include<iostream> using namespace std; class Test { public: Test() { }; Test(int x1, int y1) :x(x1), y(y1) { }; Test(const Test& T) { x = T.x; y = T.y; cout << "我是拷贝构造" << endl;原创 2021-05-07 20:44:07 · 231 阅读 · 1 评论 -
关于malloc和free
malloc和freemallocfreefree的作用 malloc 指在堆区开辟空间给用户使用,而这个区域最大是取决于内存大小 free free(void* p)的参数只有一个,把用malloc开辟的空间销毁掉,而free仅仅传入的是一个首地址,那么free是怎么确定malloc开了多少个字节的呢? 决定free释放多大的内存块,是在malloc的时候就已经确定了 实际上在malloc的时候,会自动在p地址的前面4或8个字节内,额外分配空间,用来记录管理信息,随后free( p) 时会自动偏移,所以用原创 2021-05-03 19:16:08 · 409 阅读 · 0 评论 -
按字节赋值的memset
memset memset是按照字节来赋值的 例如 int a[100]; memset(a, 5, sizeof(a)); 只有0 和 -1是正常的,因为 0 的二进制表示中,所有位都为0,-1 的二进制表示中,所有位都为 1 所以在写代码的时候不要踩坑啦!! ...原创 2021-05-03 19:23:24 · 522 阅读 · 0 评论 -
指针
指针♂引用什么是指针普通指针指针作为形参什么是引用引用的作用指向引用的指针 什么是指针 普通指针 首先先理解变量 int a=1; printf("%p\n",&a); printf("%d\n",a); 这里给大家补充一个知识点,%p是查看地址 006dfe9c 1 这里的006dfe9c是变量a的地址,而1是这个地址(006dfe9c)存的值 我们讲繁杂的地址值用抽象的a来表示,而编译器会自动还原a->006dfe9c 那么,指针呢? 这里说明一点,*有取地址的做用,称为升维。&a原创 2021-04-20 22:02:22 · 220 阅读 · 2 评论