C/C++
文章平均质量分 74
noCRUDer
这个作者很懒,什么都没留下…
展开
-
在VC++6.0中复制对话框
看到一个别人的对话框资源,感觉还挺好用的,于是想复制过来,复制步骤如下:方法一:1、复制别人的*rc文件到自己的工程目录下,然后改成你自己工程里*rc文件的文件名;2、复制别人的resource.h文件到你的工程目录下(这个文件里面保存了Dialog文件的标示符)原创 2011-09-11 22:07:13 · 1304 阅读 · 0 评论 -
指针与句柄的区别
最近两天在复习一些c++的知识,中间发现了许多以前没有注意过的问题。关于句柄以前总是将其理解为指针,其实不然,他们之间有着明显的区别。 首先,指针指向系统中物理内存的地址,而句柄是windows在内存中维护的一个对象内存物理地址列表的整数索引,句柄是一种指向指针的指针。 在windows系统中的内存管理一般会将当前处于空闲状态的对象的内存释放掉,当需要访问的时候再重新提交分配物原创 2012-06-27 11:55:29 · 1986 阅读 · 1 评论 -
c++中堆、栈内存分配
一个由C/C++编译程序占用内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数参数值,局部变量值等。其操作方式类似于数据结构中栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量和静态变量存储是放在转载 2012-06-28 10:11:03 · 5015 阅读 · 0 评论 -
C++内存管理(一)
1、 内存分配方式(1)从静态存储区域分配。例如使用static、全局变量。静态存储区的数据在程序编译的时候就已经分配好了,在程序运行期间一直存在,只有在程序推出之后才会释放。(2)在栈上分配。函数内部的局部变量都是在栈上分配的,在函数阶数时存储空间便被释放;(3)在堆上分配。程序员根据自己的需要申请和释放内存(new/delete malloc/free)2、在内存的分配过程中原创 2012-06-29 16:53:12 · 1056 阅读 · 0 评论 -
如何成为一个编程高手
在过去5年中,我面试了数百名IT工程师,我认为很值得把我的面试IT工程师的经验同大家分享。这能够:●帮助人们为他们的下一个面试准备●帮助IT工程师找到合适的工作。●帮助IT工程师创造更好的环境。我们通过两个方面面试IT工程师:●技术技能:包括理论和实践技能以及经验等。●非技术技能:性格,沟通技巧,是否能够融入我们的文化环境。第1部分中,我将主要从翻译 2012-07-28 14:40:57 · 34657 阅读 · 47 评论 -
声音导引系统及信号采集处理电路设计
2009年参加了全国大学生电子竞赛,经过全队三人的努力,最终荣获全国一等奖(当年浙江省本科组全国一等奖好像一共5个队伍),在这里特别感谢武林老师,是他为我们创造了这么好的条件,才能够在电子竞赛的道路上走的更加顺畅。我也是在今天整理资料的时候忽然发现了这篇文章,这是我很久之前写的,本来想拿出来发表的,但是研究生导师说没有什么理论深度。我个人认为对于大多数本科生来说还有一定的参考价值。声音导引系统原创 2012-04-03 13:34:40 · 14523 阅读 · 0 评论 -
编程语言之争——PHP VS. RUBY VS. PYTHON
正如世界上的语言有多种多样,编程语言同样如此,有些更受欢迎,有些简单易用。随着编 程语言的种类越来越多,它们之间的竞争也日益激烈。而且往往简单的、运行速度快的编程语言并非就是最好的选择,因为不同的程序员对编程语言的选择很有讲究,而且能讲出一大堆道理来解释为什么喜欢某种编程语言 ,不过他们的给出的理由一般都带有太多个人的经历和情感因素。 下面的图表站在客观的立 场,从各个角度对PHP、转载 2012-08-18 20:46:48 · 1354 阅读 · 0 评论 -
找出n个字符串中出现次数最多的子串
该程序未考虑出错机制,同时效率比较低。只是算法比较简单一些,比较容易理解。#include "stdafx.h"#include #include #include #define NUM 10using namespace std;/**该函数找出字符串str中从begin开始到end结束的字符串并将该字符串返回给result输入值:s原创 2012-09-14 15:41:38 · 3436 阅读 · 0 评论 -
C/C++中float和double的存储结构
在C/C++中float是32位的,double是64位的,两者在内存中的存储方式和能够表示的精度均不同,目前C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算。无论是float还是double,在内存中的存储主要分成三部分,分别是:(1)符号位(Sign):0代表正数,1代表负数(2)指数位(Exponent):用于存储科学计数法中的指数部分,并且原创 2012-07-05 20:19:56 · 12849 阅读 · 7 评论 -
虚函数表指针,虚函数表详解
虚函数表对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。 在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了 这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要转载 2012-06-25 21:08:39 · 1496 阅读 · 0 评论 -
C++中static关键字详解
静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将只在转载 2012-06-25 13:09:50 · 664 阅读 · 0 评论 -
sizeof与strlen的区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所转载 2012-06-24 21:58:01 · 605 阅读 · 0 评论 -
c++中new一个二维数组
在c++中定义一个二维数组时有多种方式,下面是几种定义方式的说明:其中dataType 表示数据类型,如int byte long...1、dataType (*num)[n] = new dataType [m][n];//这是一个数组指针形式的定义,即每一行是一个指针...delete []num;缺点:n必须是已知优点:调用直观,连续储存,程序简洁2、 data原创 2011-11-02 16:34:43 · 5226 阅读 · 0 评论 -
读书笔记--字符串循环移位
问题描述:将一个字符串例如abcd123向左旋转移位4位变为123abcd;或者右移4位变为d1234abc;要求写一个函数实现对该字符串的这两种操作。方法一:最容易想到的方法当然是(以左移为例)一次移动一位,一共移动四次,这样便可以将上述字符串左移4位。abcd123-->bcd123a-->cd123ab-->d123abc-->123abcdLeftShift(int* arr,原创 2012-04-05 17:36:18 · 995 阅读 · 1 评论 -
如何计算C++中结构体的存储空间
#include "stdafx.h"#include struct A{int a;unsigned __int64 b;short c;}Test_a;struct B{int a;short c;unsigned __int64 b;}Test_b;struct C{short a;short b;s原创 2012-06-20 20:12:16 · 2508 阅读 · 1 评论 -
C++中的四种显式类型转换之static_cast
在C++中提供了类型向上转换和向下转换的方法。关于向上转换和向下转换区别如下:1、从派生类转换到基类,在继承图中来说是向上的,所以一般称为向上类型转换。向上类型转换总是安全的,因为从更专门的类型转换到更一般的类型。可能出现的唯一的事情就是失去成员函数。向上转换可以通过虚函数来实现。下面的程序就是一个向上转换的例子:class base{base(){}virtual ~ba原创 2012-06-24 14:45:23 · 2835 阅读 · 0 评论 -
c++内存访问越界
http://blog.vckbase.com/arong/archive/2009/12/30/40598.html1. 原理分析经常有些新C++程序员问:C++的类的成员个数是不是有限制,为什么我加一个变量后程序就死了?或者说:是不是成员变量的顺序很重要,为什么我两个成员变量顺序换一换程序就不行了?凡此种种之怪现象,往往都是内存访问越界所致。何谓内存访问越界,简单的说,你向转载 2012-06-24 20:16:28 · 4143 阅读 · 0 评论 -
关于C++ const 的全面总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示:No.作用说明参考代码转载 2012-06-20 16:08:02 · 724 阅读 · 0 评论 -
C++关键字volatile解析
volatile在英文中的解释是“不稳定的”,也就是说用该关键字修饰的变量的值随时可能被改变。用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。 volatile的本意是“易变的”,不过翻译成“直接存取原始内存地址”更为合适。“易变”是因为外在因素引起的,象多线程,中断等,并不是因为用volatile修饰了的变量就是“易变”了,假如没有外因,即使用volat原创 2012-06-25 14:36:11 · 1189 阅读 · 0 评论 -
C++中的四种显式类型转换之const_cast、reinterpret
1、const_cast(content)主要用于修改数据类型的const和volatile属性,#include #include using namespace std;class B{ public:int m_iNum;B() {m_iNum=9;}};void foo(){const B b1;//b1.m_iNum = 100; //原创 2012-06-24 21:23:28 · 947 阅读 · 0 评论 -
一个合格的程序员应该读过哪些书
很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书。其实除了前10本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。下面就按照各本书的推荐数排列。1、《代码大全》 史蒂夫·迈克康奈尔推荐数:1684“优秀的编程实践的百科全书,《代码大全》注重个人技术,其转载 2012-11-21 16:09:35 · 2049 阅读 · 0 评论