C+
清城无雪
这个作者很懒,什么都没留下…
展开
-
编写函数: unsigned int reverse_bit(unsigned int value); 这个函数的返回 值value的二进制位模式从左到右翻转后的值。
//如://在32位机器上25这个值包含下列各位://00000000000000000000000000011001//翻转后:(2550136832)//100110000000000000000000000#includeunsigned int reverse_bit(unsigned int num){ unsigned i原创 2016-09-02 10:58:25 · 250 阅读 · 0 评论 -
debug和release的区别
Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等。习惯上,我们仍然更愿意使用VC已经定义好的名称。 Debug版本包括调试信息,所以要比Release版本大很多(可能...原创 2018-01-02 20:00:08 · 19818 阅读 · 0 评论 -
C++ 堆和栈的区别 内存分配方式理解
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没有释原创 2017-11-16 14:38:00 · 6509 阅读 · 1 评论 -
程序的内存分配之堆和栈的区别
堆栈概述 在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。要点: 堆,优先队列(priority queue);普通的队列是一种先进先出的数据结构(FIFO—First-In/Fi原创 2017-11-16 14:13:22 · 918 阅读 · 0 评论 -
c++ assert() 使用方法
ssert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#in转载 2017-11-16 13:41:57 · 557 阅读 · 0 评论 -
strcmp函数与strcpy函数
(一)strcmp函数 strcmp函数是比较两个字符串的大小,返回比较的结果。一般形式是: i=strcmp(字符串,字符串); 其中,字符串1、字符串2均可为字符串常量或变量;i 是用于存放比较结果的整型变量。比较结果是这样规定的: ①字符串1小于字符串2,strcmp函数返回一个负值;②字符串1转载 2017-10-09 23:41:45 · 377 阅读 · 0 评论 -
const的用法
在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。在 const成员函数中,this的类型是一个指向 const类类型对象的 const指针。既不能改变 this所指向的对象,也不能改变 this所保存的地址。 关键字:Const,Const函数,Const变量,函数后转载 2017-09-25 18:44:51 · 209 阅读 · 0 评论 -
数组指针和指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;转载 2017-09-23 11:26:35 · 204 阅读 · 0 评论 -
斐波那契数列和二分查找的算法(递归与非递归)
#include using namespace std;long long fibonacci1(size_t n)//非递归算法{long long* fiboarry = new long long[n + 1];fiboarry[0] = 0;fiboarry[1] = 1;for (size_t i = 2; i {fiboarry[i] = fibo原创 2016-11-27 15:38:01 · 446 阅读 · 0 评论 -
栈和队列的区别
简单的可以理解为: heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据转载 2016-11-29 12:05:17 · 507 阅读 · 0 评论 -
“error LNK1169: 找到一个或多个多重定义的符号”的解决方法(转载)
问题描述如下:有 三个源文件,A.h、B.cpp、C.cpp。A.h是头文件,其中声明了三个变量a1、a2、 a3。B.cpp是A.h中所声明的类的实现源代码,C.cpp是主程序文件。B.cpp和C.cpp中均包含头文件 A.h。在编译时,编译能够通过,但链接时出了问题,出现”error LNK1169: 找到一个或多个多重定义的符号“的错误。经过分转载 2016-10-13 19:10:31 · 254 阅读 · 0 评论 -
“error LNK1169: 找到一个或多个多重定义的符号”的解决方法(转载)
“error LNK1169: 找到一个或多个多重定义的符号”的解决方法(转载)问题描述如下:有 三个源文件,A.h、B.cpp、C.cpp。A.h是头文件,其中声明了三个变量a1、a2、 a3。B.cpp是A.h中所声明的类的实现源代码,C.cpp是主程序文件。B.cpp和C.cpp中均包含头文件 A.h。在编译时,编译能够通过,但链接时出了问题,出现”err转载 2016-10-13 19:08:29 · 357 阅读 · 0 评论 -
VS下如何调试程序
程序崩溃的原因分类函数栈溢出 一个变量未初化、未赋值,就读取它的值。 ( 这属于逻辑问题,往往是粗心大意的导致的 )函数栈溢出 (1)定义了一个体积太大的局部变量 (2)函数嵌套调用,层次过深(如无穷递归)数组越界访问 访问数组元素时,下标越界指针的目标对象不可用 (1)空指针 (2)野指针 指针未赋值free/delete释放了的对象不恰当的指针强制转换1 导言在软件开发周期中,测试和修正缺陷(...原创 2018-02-25 15:20:58 · 58687 阅读 · 4 评论