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 · 183 阅读 · 0 评论 -
拷贝构造函数与移动构造函数
拷贝构造函数与移动构造函数拷贝构造函数与移动构造函数的区别参考拷贝构造函数与移动构造函数的区别拷贝构造函数的形参是一个左值引用拷贝构造函数完成的是整个对象或变量的拷贝……移动构造函数的形参是一个右值引用移动构造函数是生成一个指针指向源对象或变量的地址,接管源对象的内存,相对于大量数据的拷贝节省时间和内存空间。参考C++11–移动构造函数拷贝构造函数与移动构造函数Test(Test&& T):m_ptr(T.m_ptr) { T.m_ptr = nullptr; c原创 2021-05-07 22:38:07 · 2057 阅读 · 0 评论 -
右值引用
右值引用int &b = 5;int &&b = 5;直接引用一个右值是不行的所以要使用&&右值引用原创 2021-05-07 21:48:44 · 132 阅读 · 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 · 245 阅读 · 1 评论 -
关于malloc和free
malloc和freemallocfreefree的作用malloc指在堆区开辟空间给用户使用,而这个区域最大是取决于内存大小freefree(void* p)的参数只有一个,把用malloc开辟的空间销毁掉,而free仅仅传入的是一个首地址,那么free是怎么确定malloc开了多少个字节的呢?决定free释放多大的内存块,是在malloc的时候就已经确定了实际上在malloc的时候,会自动在p地址的前面4或8个字节内,额外分配空间,用来记录管理信息,随后free( p) 时会自动偏移,所以用原创 2021-05-03 19:16:08 · 436 阅读 · 0 评论 -
按字节赋值的memset
memsetmemset是按照字节来赋值的例如int a[100];memset(a, 5, sizeof(a));只有0 和 -1是正常的,因为 0 的二进制表示中,所有位都为0,-1 的二进制表示中,所有位都为 1所以在写代码的时候不要踩坑啦!!...原创 2021-05-03 19:23:24 · 553 阅读 · 0 评论 -
指针
指针♂引用什么是指针普通指针指针作为形参什么是引用引用的作用指向引用的指针什么是指针普通指针首先先理解变量int a=1;printf("%p\n",&a);printf("%d\n",a);这里给大家补充一个知识点,%p是查看地址006dfe9c1这里的006dfe9c是变量a的地址,而1是这个地址(006dfe9c)存的值我们讲繁杂的地址值用抽象的a来表示,而编译器会自动还原a->006dfe9c那么,指针呢?这里说明一点,*有取地址的做用,称为升维。&a原创 2021-04-20 22:02:22 · 230 阅读 · 2 评论