![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
qxzr2005sdu
这个作者很懒,什么都没留下…
展开
-
c++ 经典算法之走台阶问题
今天在火车上听同学说起一个面试遇到的问题:说一个人每次可以走一个台阶,两个台阶,三个台阶,共有M级台阶,问有多少种走法?回来goole了一下,原来是一个经典的问题,叫做走台阶。算法:设每次走一个台阶m次,每次走两个台阶n次,每次走三个台阶k次,这样只要m+2*n+3*k=M就可以了。。如果:全部每次走一个,或者全部每次走两个,或者每次全部走三个,那么,只要记住这些方法的个数就可以了。否原创 2012-01-18 21:32:44 · 1153 阅读 · 0 评论 -
C语言运算符优先级 详细列表
文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。恩,问这个问题的人太多了,懒得继续回答,直接贴上来自己看。。。优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]转载 2012-10-06 08:15:05 · 185 阅读 · 0 评论 -
__attribute__机制介绍
原文地址:http://blog.csdn.net/sunboy_2050/article/details/65667391. __attribute__ GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Ty转载 2012-10-07 00:11:24 · 177 阅读 · 0 评论 -
指针作参数的常见错误
一、对参数指针的地址修改参数的地址是可以修改的,修改后的地址是不可能传回给调用处的指针变量。也就是说,可以修改参数地址所指的单元的值,这是可以传回到调用处的变量里面的。#include #include #include int subFunc(int arr[3]);//交换两整数void change(int *data1, int *data2) { int转载 2012-10-07 00:23:16 · 189 阅读 · 0 评论 -
#pragma pack
来自百度百科:http://baike.baidu.com/view/2317161.htm目录一、n字节的对齐方式二、#pragma pack(n) 对齐用法详解一、n字节的对齐方式 VC对结构的存储的特殊处理确实提高CPU存储变量的速度,但是有时候也带来了一些麻烦,我们也屏蔽掉变量默认的对齐方式,自己可以设定变量的对齐方式。VC中提供了#pragma pa转载 2012-10-06 23:56:08 · 153 阅读 · 0 评论 -
C语言中的break、continue和goto三者的区别与用法
break和continue的使用范围比较一致,两都可以用于循环,其中break还可以用于switch。功能上也有一定的相似性,break就相当于退学,continue则相当于跳级。对于break,程序究竟跳到哪儿比较好理解。但是continue究竟跳到哪儿去了,初学者可能有些疑惑,不妨就当它跳到了循环体最后一句语句的后面。 如果它们处在由多重循环和switch组成的圈圈里,那么它们就对包括转载 2012-10-12 00:36:32 · 1117 阅读 · 0 评论 -
关于C语言中return的一些总结!!!
*******************************************************************************************/*/************************关于C语言中return的一些总结!!! ************************************/*/**************转载 2012-10-12 00:45:47 · 647 阅读 · 0 评论 -
STL中List的erase正确与错误用法
erase的作用是,使作为参数的迭代器失效,并返回指向该迭代器下一参数的迭代器。如下:view sourceprint?1.list ParticleSystem;2.list::iterator pointer;3.if(pointer->dead ==true)4.{5.pointer = ParticleSystem.erase(pointer转载 2012-09-24 21:21:04 · 408 阅读 · 0 评论 -
scanf、getchar、gets的比较
原文地址:http://blog.csdn.net/qqgrowing/article/details/6744889scanf();输入形式:scanf("%d",&a); scanf("%s",a)(或scanf("%s",&a),不正规);一一对应:%d int ;%f float ;%lf double ;%ld long ;%I64d __int64 ;%转载 2012-10-17 00:47:30 · 208 阅读 · 0 评论 -
gdb常用(网上摘抄)常用 GDB 调试 命令(转载)
// 查看进程的线程top -H -p PID// 将调试信息输出到文件1 #(gdb) set logging file 2 #(gdb) set logging on3 #(gdb) set height 04 #(gdb) thread apply all bt5 #(gdb) set logging offthread apply all bt // 打转载 2012-12-02 22:59:04 · 343 阅读 · 0 评论 -
浅谈字节序
(Endianness) (2012-02-01 15:07) 标签: 转载 原文地址:浅谈字节序(Endianness)作者:cbqcgq一、字节序的起源在计算机中,字节序(Endianness)是数据中单独的可取地址的亚型(words,bytes和bits)在外部存储器中存储的顺序。通常在提到四字(ddword)、双字(dword)和字(word)的时候需要考虑其实转载 2012-12-01 14:02:52 · 223 阅读 · 0 评论 -
C语言中的位域、字节序、比特序、大小端 (2012-03-22 09:19)(转载)
C语言中的位域、字节序、比特序、大小端 (2012-03-22 09:19)标签: 转载 原文地址:C语言中的位域、字节序、比特序、大小端作者:digdeep1261.比特序 / 位序 / bit numbering / bit endianness我们知道一个字节有8位,也就是8个比特位。从第0位到第7位共8位。比特序就是用来描述比特位在字节中的存放顺序的。转载 2012-12-02 20:39:35 · 434 阅读 · 0 评论 -
应用gdb进行调试
下面是简单命令,另外网上可以找到 gdb quick reference .pdf看到更多命令列表1. 启动 gdb 应用程序名 gdb 应用程序名 core文件名 gdb 应用程序名 pid gdb --args 应用程序名 应用程序的运行参数 帮助: help 显示帮助 info转载 2012-12-02 23:19:31 · 155 阅读 · 0 评论 -
C语言时间函数应用
C语言时间函数应用摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单转载 2012-12-29 09:26:10 · 147 阅读 · 0 评论 -
C语言获取时间函数
C语言获取时间函数C语言的标准库 函数包括一系列日期和时间处理函数,它们都在头文件中说明。下面列出了这些函数。在头文件中定义了三种类型:time_t,struct tm和clock_t。 在中说明的C语言时间函数 time_t time(time_t *timer); double difftime(time_t time1,time_t time2); s转载 2012-12-29 09:27:07 · 205 阅读 · 0 评论 -
linux下的程序分析工具——gprof
gprof使用详细介绍 linux下c/c++编程gprof介绍gprof是GNU profiler工具。可以显示程序运行的“flatprofile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。基本用法:1. 使用-p转载 2012-12-31 14:27:48 · 500 阅读 · 0 评论 -
Linux上程序运行一段时间后,段错误,bt得其调用栈,函数A调用的下层函数栈损坏
Linux上程序运行一段时间后,段错误,bt得其调用栈,函数A调用的下层函数栈损坏。我进入A函数栈桢,查看eip,ebp寄存器,结合汇编分析,各项值都正确,实在是没法了,还求各位大神指点一下?这种栈被写坏的问题,一般是由哪些原因引起的呢?1.线程栈空间太短,而内部局部变量有如大的数组将栈写穿?但这种原因我排查了,没有这情况。还有其它什么原因呢,烦请各位神指点一下,多谢。转载 2012-12-31 14:28:51 · 525 阅读 · 0 评论 -
map、set、list、pair网上摘抄汇总
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识原创 2012-10-01 10:18:35 · 354 阅读 · 0 评论 -
编程是一种艺术创作 德问 程序员,你会问问题吗?(来自德问)
本文作者:池建强 | 原文地址:程序员,你会问问题吗?由于一直从事技术和平台产品方面的工作,我们部门经常会收到公司内外同事和同仁的问题邮件,有些好的问题能让你发现自己技术上的缺陷、产品的bug或提升的空间,去思考、回答和解决这样的问题真是一件让人愉悦,充满挑战和成就感的事情。但是非常遗憾的是,这样的好问题却是凤毛麟角。我经常会被一些莫名其妙的问题搞的啼笑皆非,比如:程序运行过程中突转载 2012-09-28 22:58:31 · 1083 阅读 · 0 评论 -
两种求根号的方法
直接贴代码:#include using namespace std;//牛顿迭代法double _closeto_sqrt(double n){ double x = 0.0; double y; y = n/2.0; while(x != y){ x = y; y = (x + n/x)/2.0; } return转载 2012-01-19 09:52:55 · 307 阅读 · 0 评论 -
MFC解惑
在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成员函数.也就是说MFC封装了Windows API 你说你喜欢C++而MFC换一种说法就是一个用C++写的一个函数库 然后你来调用 只不过这个类不是你写的MFC提供数百个类,最重要的、也是编写任何VC++应用程序都必不可少的两个类CWinApp和CFrameWnd,这两个类是编写复杂庞大应用转载 2012-01-20 10:17:30 · 161 阅读 · 0 评论 -
Debug与Release版本的区别
Debug和Release并没有本质区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。我们完全可以把Debug和Release的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_Debug_Release。Debug包括调试信息,所以要比release版本大很多。至于是否需要DLL支持,主要取决于你采用的编译选项。如果是基于AT转载 2012-01-20 23:33:59 · 169 阅读 · 0 评论 -
程序员能力矩阵
原文地址:http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htmProgrammer Competency MatrixNote that the knowledge for each level is cumulative; being at level n implies转载 2012-01-20 10:45:43 · 108 阅读 · 0 评论 -
effective c++
参考《Effective c++》Item21上的做法,如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧,const就是修饰指针本身,即指针本身是常量。转载 2012-01-28 20:46:47 · 146 阅读 · 0 评论 -
win7 交换 CAPS LOCK 左CTRL
HKEY_LOCAL_MACHINE /SYSTEM /CurrentControlSet /Control /Keyboard Layout新建 二进制 字符串 Scancode Map 修改其值为0000: 00 00 00 00 00 00 00 000008: 02 00 00 00 3A 00 1D 000010: 1D 00 3A 00 00 00 00 00保转载 2012-02-12 15:41:08 · 982 阅读 · 0 评论 -
函数的覆盖、重载与隐藏
原文地址:http://zhidao.baidu.com/question/2196348“overload”翻译过来就是:超载,过载,重载,超出标准负荷;“override”翻译过来是:重置,覆盖,使原来的失去效果。 先来说说重载的含义,在日常生活中我们经常要清洗一些东西,比如洗车、洗衣服。尽管我们说话的时候并没有明确地说用洗车的方式来洗车,或者用洗衣服的方式来洗一件衣服,但是谁转载 2012-02-25 09:57:57 · 301 阅读 · 0 评论 -
CView_VS_CDocument
CView与CDocument这是面试的时候,考官问我的问题之一。具体问题忘记了。最近看到一个人写的MFC的一些bolg,突然想起来这个问题了,就稍微总结一下,浅显之处,还请见谅。第一点,从类的继承关系上,CView继承自CWnd,CWnd继承自CCmdTarget;CDocument继承自CCmdTarget。第二点:CView视图,负责内存数据与用户的交互。包括数据的显示、原创 2012-01-20 10:13:00 · 706 阅读 · 0 评论 -
32位和64位数据类型区别
数据类型 32位 64位 char 1 1 int 4 4 long 4 8 float 4 4 double 8 8 long double 12 16 long long88sizeof(char),sizeof(char*转载 2012-09-26 22:25:02 · 246 阅读 · 0 评论 -
C语言中extern的作用
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗?转载 2012-09-26 23:53:45 · 453 阅读 · 0 评论 -
C语言的内存布局问题
1 。 每次都会遇到这个问题,一直是看了又忘,忘了又看。本文主要简介一下c中的内存类型和布局问题。 2。内存的类型 (1)栈区(stack):由编译器自动分配和释放的,存放函数的参数值、局部变量的值等。操作方式类似数据结构中的栈。 在函数参数和地址入栈情况中,一般是从左向右将变量入栈,最后函数的地址入栈。 (2)堆区(hea转载 2012-09-26 23:55:34 · 580 阅读 · 0 评论 -
联合体内存对齐
union DATE{ char a; int i[5]; double b;};DATE max;cout sizeof(max) endl;这个问题很好回答,并且我把这个问题归结于基本概念题(就是入门书必须介绍的)。我想一般来说,做过内存管理的,对这个语言特性肯定不会陌生。摘几句The C Programming Language里面讲述这个转载 2012-09-26 22:49:31 · 437 阅读 · 0 评论 -
关于ASSERT(断言)使用的规则--摘自《高质量C/C++编程指南》
程序一般分为Debug 版本和Release 版本,Debug 版本用于内部调试,Release 版本发行给用户使用。断言assert 是仅在Debug 版本起作用的宏,它用于检查“不应该”发生的情况。示例6-5 是一个内存复制函数。在运行过程中,如果assert 的参数为假,那么程序就会中止(一般地还会出现提示对话,说明在什么地方引发了assert)。void *memcpy(void转载 2012-09-26 22:53:07 · 491 阅读 · 0 评论 -
深入理解C/C++数组和指针
版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7044380C语言中数组和指针是一种很特别的关系,首先本质上肯定是不同的,本文从各个角度论述数组和指针。一、数组与指针的关系数组和指针是两种不同的类型,数组具有确定数量的元素,而指针只是一个标量值。数组可以在某些情况下转换为指针,当数组名转载 2012-09-26 23:26:06 · 391 阅读 · 0 评论 -
关键字typedef用法(转)
C/C++语言中的typedef相信大家已经不陌生,本文对C/C++语言关键字typedef的各种用法作一个介绍。typedef,顾名思义,为“类型定义”,可以解释为:将一种数据类型定义为某一个标识符,在程序中使用该标识符来实现相应数据类型变量的定义。例如: typedef unsigned int UINT;int main (int argc, char *argv[]){转载 2012-09-26 23:46:12 · 135 阅读 · 0 评论 -
C语言详解sizeof
原文地址:http://blog.sina.com.cn/s/blog_5da08c340100bmwu.html一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。 它并不是函数。 sizeof操作符以字节形式给出了其操作数的存储大小。 操作数可以是一个表达式或括在括号内的类型名。 操作数的存储转载 2012-09-26 23:56:46 · 409 阅读 · 0 评论