
C++
文章平均质量分 58
GavinLin99
这个作者很懒,什么都没留下…
展开
-
堆栈区别
一个程序一般分为3段:text段,data段,bss段text段:就是放程序代码的,编译时确定,只读,data段:存放在编译阶段(而非运行时)就能确定的数据,可读可写就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域bss段:定义而没有赋初值的全局变量和静态变量,放在这个区域 这个够不够清楚呢?堆栈就是栈的简称。堆和栈的区别一、预备知识—原创 2014-01-08 13:39:51 · 563 阅读 · 0 评论 -
指针 引用 区别
下面用通俗易懂的话来概述一下:指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义:引用-引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引用。见下图,所示引用的含义:2、指针和引用的区别原创 2014-01-08 13:34:20 · 584 阅读 · 0 评论 -
C++
1.编写my_strcpy函数,实现与库函数strcpy类似的功能,不能使用任何库函数;答:char *strcpy(char *strDest, const char *strSrc){if ( strDest == NULL || strSrc == NULL)return NULL ;if ( strDest == strSrc)returnstrDest ;ch转载 2013-12-26 23:08:14 · 513 阅读 · 0 评论 -
C++ static用途
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)第一个作用:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容#include增加这条语句char a = ‘A‘; // global variablevo原创 2013-12-26 23:51:49 · 473 阅读 · 0 评论 -
C++操作系统面试题
C++和操作系统面试问题分类inline的使用是有所限制的,inline只适合函数体内代码简单的函数使用,不能包含复杂的结构控制语句例如while switch,并且不能内联函数本身不能是直接递归函数(自己内部还调用自己的函数)C++多态实现机制:在C++中,对于有virtual的类,其sizeof会比正常情况多处4个字节。既在类的最开始四个字节,放的是VTABLE表的地址(voi转载 2013-12-26 23:05:41 · 778 阅读 · 0 评论 -
c++ 指针 数组区别
C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。修改原创 2013-12-27 11:52:25 · 496 阅读 · 0 评论 -
链表逆序
typedef struct Node { int data; struct Node *next; }List;非递归:List* ReverseList( List * head ) {if(head == NULL || head->next == NULL){return head;}List* p1 = head;List* p2 = head->原创 2013-12-27 16:45:37 · 522 阅读 · 0 评论 -
虚表/虚指针
虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面可以知道:是每个类用了一个虚表,每个类的对象用了一个虚指针。具体的用法如下:class A{public:virtual void f();virtual void g();private:int a};class B : public A{publi原创 2013-12-27 12:16:54 · 1065 阅读 · 0 评论