11 2022 档案
返回值优化
摘要:无返回值优化 以前写的随笔提到了不要返回局部变量的指针 但为什么黑马程序的视频中主函数第一次打印还能正常的输出呢。事实上在执行 return 语句时系统是在内部自动创建了一个临时变量,然后将 return 要返回的那个值赋给这个临时变量。所以当被调函数运行结束后 return 后面的返回值真的就被释
阅读全文
判断两个立方体的体积是否相等
摘要:1 #include<iostream> 2 using namespace std; 3 4 class Cube 5 { 6 public: 7 8 int func_v() 9 { 10 return m_H * m_W * m_L; 11 } 12 void func_g(int h, in
阅读全文
引用之引用作为函数值的返回值
摘要:定义函数时指定的返回值类型实际上指定的就是这个临时变量的类型。上图表明这个临时变量是int型的引用,这个引用接收了变量a,然后主函数中这个临时变量将值传给了引用ref2,ref2成了a的别名
阅读全文
智能指针之unique_ptr
摘要:裸指针即便使用了delete也有可能内存泄漏。智能指针则不会 下面的例子假定p->foo()抛出了异常就不会执行delete p从而造成内存泄漏。 值传递: 1 void pass_uo1(int value) 2 { 3 value = 9; 4 } 5 int main() 6 { 7 auto
阅读全文
智能指针之share_ptr
摘要:内存泄漏: 当指针p和变量y被释放掉,new所开辟的内存不会被释放,这就是内存泄漏。 shared_ptr: ***注意***use_count是share_ptr的方法,用来记录有多少个指针指向该内存,reset关键字表示重置使指针不再指向原来的对象(而该指针自动指向nullptr)对象被释放(所
阅读全文
指针之空指针野指针
摘要:空指针(指针变量指向内存编号为0的空间,内存空间为0~255是不可以被访问的) 1.初始化指针为空指针最好的方式:int *p=nullptr; 2.空指针的作用是: 当不清楚指针应该指向何处时,就把它初始化为nullptr。 3.空指针的注意事项: 将变量赋值给空指针的操作是错误的,即便变量值恰好
阅读全文
指针基础知识
摘要:1.指针的4种状态 指向一个对象 指向近邻对象所占空间的下一个位置 空指针,意味着指针没有指向任何的对象 无效指针(野指针),也就是上述情况之外的其他值 对于第二种情况这里加以说明: 其实就是指向一个对象的后一位置,这个位置是不存在对象的,对此指针解引用将会是未定义的结果。这种指针主要作用是用来标识
阅读全文
内存四区之栈区局部变量和堆区局部变量
摘要:写在前面: 返回栈区局部变量的地址是错误的 可以返回堆区局部变量的地址 返回值的理解: 我们知道,被调函数运行结束后才会返回主调函数,但是被调函数运行结束后系统为被调函数中的局部变量分配的内存空间就会被释放。也就是说,return 返回的那个值在被调函数运行一结束就被释放掉了,那么它是怎么返回给主调
阅读全文
字符串之字符串的拼接
摘要:1 string teacher = "teach_"; 2 string name = "ab"; 3 teacher += name[0]; 4 cout << teacher << endl; 打印结果:
阅读全文
冒泡法
摘要:1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int temp = 0; 6 int arr[6] = { 0,3,1,7,4,5 }; 7 for (int i = 0; i < 5; i++) { 8 for (in
阅读全文
元素的逆序
摘要:1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int temp = 0; 6 int arr[6] = { 0,1,2,3,4,5 }; 7 8 for (int i = 0; i <= 6/2-1; i++) { 9
阅读全文
乘法口诀表(break,字符)
摘要:循环嵌套内层break只能跳出内层循环 字母数字,键盘上的英文字符用单引号或双引号都能显示出来; 键盘上的中文字符,或用输入法才能打印出来的,比如×,用双引号才能打印出来。 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5
阅读全文
敲桌子
摘要:1到100,十位或则个位或则是7的倍数,打印数字和敲桌子 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 for (int i = 0; i < 100; i++) { 6 int bai = i / 100; 7 int
阅读全文
水仙花数
摘要:1 #include<iostream> 2 #include<ctime> 3 using namespace std; 4 int main() 5 { 6 for (int i = 100; i < 1000; i++) { 7 int bai = i / 100; 8 int shi = (
阅读全文
猜数字
摘要:1 #include<iostream> 2 #include<ctime> 3 using namespace std; 4 int main() 5 { 6 srand((unsigned int)time(NULL)); 7 int num=rand() % 100; 8 int i = 1;
阅读全文
每次生成不同的随机数
摘要:1 srand((unsigned int)time(NULL)); 2 int num=rand() % 100; srand((unsigned int)time(NULL));为时间戳函数,要使用的时候要加入#include<ctime>头文件
阅读全文