- 博客(12)
- 收藏
- 关注
原创 确定字符到底是字母还是数字
以下三个函数的头文件都是1. isdigit(int c) 检查所传的字符是否是十进制数字字符。c -- 这是要检查的字符。 如果 c 是一个数字,则该函数返回非零值,否则返回 0。#include #include int main(){ int var1 = 'h'; if( isdigit(var1) ) { prin
2017-07-09 17:28:03 1395
转载 教你彻底学会动态规划
博客转自:http://lib.csdn.net/article/datastructure/9390 动态规划相信大家都知道,动态规划算法也是新手在刚接触算法设计时很苦恼的问题,有时候觉得难以理解,但是真正理解之后,就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章,大多都是叙述概念,讲解原理,让人觉得晦涩难懂,即使一时间看懂了,发现当自己做题的时候又会觉得无所适
2017-06-22 16:50:48 706
原创 针对牛客网刷题关于重复字符串处理的问题
问题:存在重复字符串,把其中重复字符串只输出一个,计算总共字符数量解决办法1:使用STL算法进行处理unique+erase这种方式解决记得加上头文件#include#include#include#include#includeusing namespace std;int main() {string str;i
2017-06-09 20:48:01 896
原创 结构体中,占内存大小
结构体中元素占用字节大小,不能简单按照单独字节大小来计算,要进行整体分析得出结果原则1:结构体中元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。从结构体存储的首地址开始,每一个元素放置到内存中时,它都会认为内存是以它自己的大小来划分的,因此元素放置的位置一定会在自己宽度的整数倍上开始(以结构体变量首地址为0计算)。原则2:在经过第一原则分析后,检查计算
2017-05-31 20:52:37 682
转载 调用有参构造函数的三种方法
[cpp] view plain copy print?#include using namespace std; class Test { public: Test() { m_a = 0; m_b = 0; cout"无参构造函数"
2017-04-17 09:31:52 7006
原创 析构函数中调用析构函数的情况
#include "iostream"using namespace std;class MyTest{public:MyTest(int a, int b, int c){this->a = a;this->b = b;this->c = c;}MyTest(int a, int b){this->a = a;this->b
2017-04-15 10:07:26 484
原创 什么情况下指针需要使用malloc分配内存,什么时候不需要
1.在c语言中,内存模型分为栈和堆。2,这两种模型内存的方式是不同的,在栈中存放的变量是由系统自动管理的,在函数结束后系统会自动释放,不需要人为的进行任何操作。3,而在堆中存放的是用户自己管理的内存,手动分配的,malloc建立,系统不会在函数体执行结束后自动释放,需要用户手动释放通过free函数。当你对分配的空间进行自己的管理和释放需要使用malloc,或者当你的分配的空间在函数结束
2017-03-27 21:26:50 11180 2
转载 引用作为函数参数返回值
说明:(1)以引用返回函数值,定义函数时需要在函数名前加&(2)用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。例如:#include float temp; //定义全局变量tempfloat fn1(float r); //声明函数fn1float &fn2(float r); //声明函数fn2float fn1(float r)
2017-03-22 08:33:48 670
原创 free函数释放malloc分配的内存,这块内存情况
1,在堆中使用malloc分配的内存,使用完毕后一定要记得释放,使用free函数进行释放。并且释放完毕后要把指针指向NULL,因为这块内存的使用权限已经释放出去,不能被本程序继续适用,然后需要把指向这块内存的指针指向NULL,防止出现野指针。2.free函数释放后这块内存就可以被别的程序使用,可以被其他地方malloc,调用、分配。该内存中的数据可以认为是无效数据,该数据可能维持原来的值,也可
2017-03-02 14:42:09 1098
转载 数组指针和指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;
2017-02-28 14:18:46 169
原创 链表删除框架原理释义
while(p){ //缓存下一个节点位置 tmp=p->next; free(p);//删除掉当前节点 p=tmp;//节点指针后移
2017-02-18 15:21:46 293
转载 char**argv[]与char**argv[]的区别
指针是个地址。char *a: a的值包含字符型数据,取消对a的引用(*a)得到一个字符,不取消引用得到一个字符串,printf("%c",*a)输出一个字符或者printf("%s",a)输出字符串;char **a: a的值包含一个地址,该地址包含字符字符型数据,取消对a的引用(*a),得到该地址,再取消对该地址的引用(**a),得到一个字符,printf("%c",**a)输出一个字符
2015-12-06 10:18:52 541
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人