自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

转载 程序运行时内存的各种数据段

1.bss段该段用来存放没有被初始化或初始化为0的全局变量,因为是全局变量,所以在程序运行的整个生命周期内都存在于内存中。有趣的是这个段中的变量只占用程序运行时的内存空间,而不占用程序文件的储存空间。可以用以下程序来说明这点,文件名为bss.c[cpp] view plain copy#include     int bss_

2017-11-19 21:12:18 2107

转载 java protected

1. protected 访问控制符能被用于方法和成员变量。   2. 声明为protected的方法和成员变量能被同一个包里的所有类所访问,就像默认修饰符package一样。   3. 能被该类的子类所访问,子类可以和父类不在一个包中。   这样,当你想让一个类中的某个方法或成员变量在包中都可见,而且其子类也能访问(子类有可能和父类不在同一个包中)但又不想让所有类都可以访

2017-10-25 23:53:44 910

转载 const的用法,特别是用在函数前面与后面的区别!

const的用法,特别是用在函数后面在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。在 const成员函数中,this的类型是一个指向 const类类型对象的 const指针。既不能改变 this所指向的对象,也不能改变 this所保存的地址。 关键字:Const,Const函数,Co

2017-10-18 15:56:12 614

转载 C语言中内存分布及程序运行中的BSS段、数据段、代码段、堆和栈

1. 栈(stack):又称堆栈,栈是由编译器自动分配释放,存放函数的参数值,局部变量的值等(但不包括static声明的变量,static意味着在数据段中存放变量)。除此之外,在函数被调用时,栈用来传递参数和返回值。由于栈的先进后出的特点,所以栈特别方便用来保存/恢复调用数据。其操作方式类似于数据结构中的栈。2. 堆(heap):堆是用于存放进程运行中被动态分配的内存段,它的大小,并不

2017-10-16 20:44:04 1173

转载 将构造函数,析构函数声明为私有和保护的,那么对象如何创建?

已经不能从外部调用构造函数了,但是对象必须被构造,应该如何解决,麻烦大家帮忙说明,关于构造,析构函数声明为私有和保护时的用法??? 提出这个问题,说明你已经对c++有所思考了。从语法上来讲,一个函数被声明为protected或者private,那么这个函数就不能从“外部”直接被调用了。对于protected的函数,子类的“内部”的其他函数可以调用之。而对于private的函数,只能被本类“

2017-10-16 11:35:32 772

转载 析构函数

一、文章来由现在在写一个项目,需要用到多叉树存储结构,但是在某个时候,我需要销毁这棵树,这意味着如果我新建了一个树对象,我很可能在某处希望将这个对象的声明周期终结,自然会想到显示调用析构函数,但是就扯出来这么大个陷阱。二、原因在了解为什么不要轻易显示调用析构函数之前,先来看看预备知识。 为了理解这个问题,我们必须首先弄明白“堆”和“栈”的概念。1)堆区(heap

2017-10-16 00:14:34 273

转载 C++类中的静态变量

可以通过以下几个例子更形象的说明这个问题://test.cpp #include class A { public: static int a; //声明但未定义 }; int main() { printf("%d", A::a); return 0;} 编译以上代码会出现“对‘A::a’未定义的引用”错误。这是因为静态成员变量a未定义,也就是还没有分

2017-10-15 23:45:30 7386

原创 大端小端问题

大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。

2017-10-15 23:01:05 155

原创 sizeof

void func(char str1[8]){ const char* str2 = "hello"; char str3[] = "he"; printf("%d,%d,%d,%d", sizeof(str1), sizeof(str2), sizeof(str3), sizeof("hello"));}数组在作为函数参数传递过程中,会退化成指针。这也是为什么指针作为参数传递

2017-10-15 22:55:51 197

转载 指针转换

一、变量指针        当我们初始化一个指针或给一个指针赋值时,赋值号(=)的左边是一个指针,赋值号(=)的右边是一个指针表达式,在绝大多数情况下,指针的类型和指针表达式的类型是一样的,指针所指向的类型和指针表达式所指向的类型是一样的。例一:1、 float f=12.3;2、 float*fptr=&f;3、 int *p;在上面的例子中,假如我们想让指针p指向实数f

2017-10-15 22:38:33 2153

原创 指针数组与数组指针

int** p[10] :p是一个有是个元素的数组,数组的每一个元素是int**类型,初始化如下所示int* (*p)[10]:p是一个指针,指向一个拥有十个元素的数组,这个数组的每一个元素是int*的类型int (**p)[10]:p是一个二级指针,指向一个指针,这个指针指向一个拥有十个元素的数组,这个数组的每一个元素为int类型,初始化如下一

2017-10-15 22:24:09 162

空空如也

空空如也

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

TA关注的人

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