
C/C++
一些C/C++知识点
零七七077
且慢
展开
-
C语言实现Flybird
C语言实现Flybird源码如下:#include<stdio.h>#include<conio.h>#include<time.h>#include<stdlib.h>#include<graphics.h>#include<process.h>#include<mmsystem.h>#incl...原创 2020-01-23 17:08:12 · 1125 阅读 · 4 评论 -
简易计算器:算术表达式的计算
给出一组字符表达式,通过程序模拟计算器执行,最终得出运算结果。(没有考虑数字溢出场景)输入:“60 + 34 * 2 / 4 – 5”输出:72存储示例:str {“60”,“+”,“34”,“*”,“2”,“/”,“4”,“-”,“5”}将中缀表达式转为后缀表达式,然后计算后缀表达式的值,用栈实现。//将中缀表达式转为后缀表达式,然后计算后缀表达式的值(用栈实现)#include<iostream>#include<stack>#include<vecto原创 2021-04-05 16:13:14 · 428 阅读 · 0 评论 -
memcpy深浅拷贝问题
使用memcpy拷贝问题1.memcpy是内存的二进制格式拷贝,将一段内存空间中内容原封不动的拷贝到另外一段内存空间中。2. 如果拷贝的是内置类型的元素,memcpy即高效又不会出错,但如果拷贝的是自定义类型元素,并且自定义类型元素中涉及到资源管理时,就会出错,因为memcpy的拷贝实际是浅拷贝。例如:如果对象中涉及到资源管理时,千万不能使用memcpy进行对象之间的拷贝,因为memcpy是浅拷贝,否则可能会引起内存泄漏甚至程序崩...原创 2021-03-15 17:22:33 · 4996 阅读 · 2 评论 -
string类的模拟实现
string类的简单模拟实现主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。深浅拷贝1.浅拷贝:(1)也称位拷贝,编译器只是将对象中的值拷贝过来。如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时另一些对象不知道该资源已经被释放,以为还有效,所以当继续对资源进项操作时,就会发生发生了访问违规。(2)如果string类中没有显式定义其拷贝构造函数与赋值运算符重载,此时编译器会合成默认的,当用s1构造s2时,编译器会调用默认的拷原创 2021-03-09 16:01:04 · 169 阅读 · 0 评论 -
C语言总结_03
21.printf()的返回值为打印字符的个数。22.头文件写法:#ifndef __ADD_H__#define __ADD_H__int ADD(int x,int y);#endif23.递归://求阶乘int factorial(int n){ if(n<=1) //递归出口 return 1; else return n*factorial(n-1);}//斐波那契数列:指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、原创 2021-02-23 22:31:36 · 135 阅读 · 0 评论 -
C语言总结_02
11.const:(1)const定义的是变量,但又相当于常量;说它定义的是常量,但又有变量的属性,所以叫常变量。用 const 定义常变量的方法很简单,就在通常定义变量时前面加 const 即可,const 和变量类型 int 可以互换位置,二者是等价的:const int a = 10; int const a = 10;const char *p; // 声明一个指向字符常量的指针,p所指向的内容不可以被修改char const *p;// 同上char * const p;原创 2021-02-17 23:15:14 · 115 阅读 · 0 评论 -
C语言总结_01
一些零碎的知识点:#include< > 引用的是编译器的类库路径里面的头文件。一般是引用自带的一些头文件,如: stdio.h、conio.h、string.h、stdlib.h 等等。#include" " 引用的是你程序目录的相对路径中的头文件。一般是用来引用自己写的一些头文件。如果使用 #include" " ,它是会先在你项目的当前目录查找是否有对应头文件,如果没有,它还是会在对应的引用目录里面查找对应的头文件。当定义的全局变量和局部变量名字相同时,局部变量优先。如:int原创 2021-02-17 10:35:39 · 996 阅读 · 2 评论