自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雲涵部落

Everything in this world is just temporary...even bad days & sleepless nights.

  • 博客(18)
  • 收藏
  • 关注

转载 c++内存中字节对齐问题详解 [ 转载 ]

一、什么是字节对齐,为什么要对齐?    现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。    对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数

2011-11-13 23:24:52 316

转载 常见排序算法(冒泡,选择,快速)的C语言实现

常用的排序算法的时间复杂度和空间复杂度排序法 最差时间分析平均时间复杂度 稳定度 空间复杂度 冒泡排序O(n2)O(n2)稳定 O(1) 快速排序O(n2)O(n*log2n)不稳定 O(log2n)~O(n)选择排序O(n2)O(n2)稳定

2011-11-09 14:50:39 420

转载 C++拷贝构造函数(深拷贝,浅拷贝)

对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include iostream>using namespace std;class CExample {private:     int a;pu

2011-11-05 21:40:01 284

转载 动态申请内存方式和数组的比较

§当所需的空间大小不确定并且对空间有要求时 使用malloc §当需要频繁申请/释放空间时 使用数组  声明周期与释放 数组的释放遵循其声明周期,无需我们显式的释放 Malloc如果不手动释放,此内存段会处于受保护状态,将不能再被分配给别人 内存碎片

2011-11-04 17:49:21 837

转载 位运算例子

题目1:从键盘上输入1个正整数给int变量num,输出由8~11位构成的数(从低0号开始编号) 基本思路: 1.截取8~11位的数,位移到0~3位 a)构建8~11位上为1其余为0的数 b)位与输入数 c)得到的结果右移8位 2.先将8~11位移到0~3位,截取0~3位 a)输入数右移8位 b)构建0~3位为1其余为0的数 c)位与,得到结果

2011-11-04 13:28:09 585

转载 关于数组地址,指针

1.以下三条输出语句分别输出什么?char str1[]       = "abc";char str2[]       = "abc";const char str3[] = "abc"; const char str4[] = "abc"; const char* str5  = "abc";const char* str6  = "abc";cout cout

2011-11-03 20:24:32 280

转载 C++函数中那些不可以被声明为虚函数

常见的不不能声明为虚函数的有:普通函数(非成员函数);静态成员函数;内联成员函数;构造函数;友元函数。  1、为什么C++不支持普通函数为虚函数?  普通函数(非成员函数)只能被overload,不能被override,声明为虚函数也没有什么意思,因此编译器会在编译时邦定函数。  2、为什么C++不支持构造函数为虚函数?  这个原因很简单,主要是从语义上考虑,所以不支持。因为构造函

2011-11-03 13:11:04 354

转载 C++函数重定义、重载、重写

1. 重写 (override):      父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。1) 被重写的函数不能是 static 的。必须是 virtual 的,或者是 override 的 ( 即函数在最原始的基类中被声明为 virtual , c++ 中没有 override) 。2) 重写函数必须有相同的类型,名称和参数列表 (即相同的函数原型)3)

2011-11-02 20:58:43 295

转载 详细介绍C++中的虚函数和动态联编

面向对象程序设计的基本观点是用程式来仿真大千世界,这使得它的各种根本特性非常人性化,如封装、继承、多态等等,而虚函数就是c++中实现多态性的主将。为了实现多态性,c++编译器也革命性地提供了动态联编(或叫晚捆绑)这一特征。虚拟函数亦是mfc编程的关键所在,mfc编程主要有两种方法:一是响应各种消息,进行对应的消息处理。二就是重载并改写虚拟函数,来实现自己的某些要求或改变系统的某些默认处理。

2011-10-31 22:05:09 521

转载 数组里a和&a的区别

#includeint main(void){ int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1);   //&a代表整个数组的地址,+1应该加上sizeof(a)的长度,所以ptr指向a[5]位置处。 printf("%d %d\n",*(a+1),*(ptr-1));//a代表数组首元素的地址,+1应该加上sizeof(a[0]),所以

2011-10-30 15:10:29 575

转载 关于extern “C”

extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。  (1) 被extern "C"限定的函数或变量是extern类型的  extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住,下列

2011-10-30 14:16:20 222

转载 关于static

全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序

2011-10-30 10:37:07 202

转载 栈的push、pop序列

题目:输入两个整数序列。其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序。思路:首先新建一个栈。从push序列开始遍历,如果当前元素与pop序列当前元素相等,则两个序列向前推进。否则如果当前栈的栈顶元素与与pop序列当前元素相等,则pop序列向前推进,栈顶元素出栈。否则如果当前push序列还没遍历完,则将push序列当前元素压入栈,然后继续迭代。

2011-10-29 16:53:01 875

转载 关于大、小端字节序

总结:1、80X86使用小端法,网络字节序使用大端法。          2、二进制的网络编程中,传送数据,最好以unsigned char, unsigned short, unsigned int                来处理, unsigned short ,unsigned short 以网络字节序处理后再拷贝到发送的buffer里          3、结构体前要指定

2011-10-29 16:47:33 421

原创 一条小面试题解答

给定结构struct A{char t:4;char k:4;unsigned short i:8;unsigned long m;};问sizeof(A) = ?【标准答案】8char t:4;char k:4;unsigned short i:8;均涉及位段知识,若没有最后一句unsigned long m则答案为2,若加了句unsigned l

2011-10-29 10:11:15 1455

转载 malloc()问题

malloc()的问题:#include #include void getmemory(char *p) { p=(char *) malloc(100); strcpy(p,"hello world"); } int main( ) { char *str=NULL; getmemory(str);

2011-10-29 09:25:18 2766

转载 【1】ptr = malloc(0*sizeof(char))【2】关于typedef的用法总结【3】关于有符号数、无符号数和数据类型的总结 .

ptr = malloc(0*sizeof(char));(转载)最近,看了有关malloc(0)的返回值以及其他一些问题的讨论,我把自己的感受和看法记录如下:问题:char* ptr = malloc(0*sizeof(char));if(NULL == ptr)      printf("got a NULL pointer");el

2011-10-27 17:43:52 1717

转载 STL中vector向量初始化问题

一个hello world程序。这个程序将一个字符串传送到一个字符向量中,然后每次显示向量中的一个字符。向量就像是盛放变长数组的花园,大约所有STL容器中有一半是基于向量的,如果你掌握了这个程序,你便差不多掌握了整个STL的一半了。  //程序:vector演示一

2011-09-27 16:38:40 7966

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除