C++复习--点点知识点

1.strlen与sizeof的区别?

a.strlen是一个函数,sizeof是一个运算符;

b.strlen返回int,sizeof返回是size_t类型,被定义为unsigned int

c.strlen的参数输入是一个char*类型,必须以‘\0’;sizeof的输入是类型等;

d.strlen是估算一个字符串的长度;而sizeof是计算容纳空间的大小。

2.strlen的实现,strcpy的实现?

char* strcpy(char * dest,const char* source)

{

     assert((dest!=NULL)&&(source!=NULL));

     char * address = dest;

     while((*dest++==*source++)!='\0');

     return address;

}

int strlen(const char* str)

{

    assert(str!=NULL);

    int len = 0;

    while(*str++!='\0')

    {

         len++;

     }

    return len;

}

3.struct与union的区别?

struct存储多个成员的信息,而union在一个时刻只存储一个成员的信息,会复写其它成员;

4.c++中那些内存需要手动释放?

malloc与free对应,new与delete 对应。malloc需要考虑内存申请失败的情况,同时,free后需要将指针指为空,防止野指针。

声明指针需小心,防止野指针。int * p = NULL;

5.防止被重复引用

#ifndef __HELLOWORLD

#define __HELLOWORLD

#endif

6.extern "C" {} 其中按照c的防止进行编译,实现C调用C++的方式,实现混合编程。

链接:https://www.nowcoder.com/questionTerminal/a314892082e649df8ee6294e012345b6

来源:牛客网

预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。

关于预处理命令中的文件包含(#include),宏定义(#define),书上已经有了详细的说明,在这里就不详述了。这里主要是对条件编译(#ifdef,#else,#endif,#if等)进行说明。

7.memset以及memcpy的实现

void* memset(void* s,int ch,size_t n)  功能:将s中当前位置后面的n个字节赋值ch.

void * memcpy(void* dest,const void* source, size_t n)  功能:将指针src指向的内存空间的n个字节复制到dest指针指向的内存空间

8.String类的构造函数,析构函数,赋值函数等的实现

String::String(const char* str)

{

    if(str==NULL)

    {

         m_data = new char[1];

         m_data[0] = '\0';

    }

    else

    {

          int len = strlen(str);

          m_data = new char[len+1];

          strcpy(m_data,str);

     }

}

String::~String()

{

    delete []m_data;

}

String::String(const char &other)

{

    int len = strlen(other.m_data);

    m_data = new char[len+1];

    strcpy(m_data,other.m_data);

}

String &String::operation=(const char& other)

{

    if(&other==this)

    {

         return *this;

     }

     delete [] m_data;

     int len = strlen(other.m_data);

     m_data = new char[len+!];

     strcpy(m_data,other.m_data);

     return *this;

}

9.const与static的用途

static的用途:

a.模块内,用于变量上,不能被外部模块使用,只能用于本模块。

b.模块内,用于函数上,不能被外部模块调用,只能用于本模块。

c.用于类内部变量,表示这个变量属于整个类,所有类只有一份内存拷贝。

d.用于类内部函数,表示不用实例类,直接可以调用;不接受this,只能访问static成员。

e.函数内部,用于变量,维持上次的值。

const的用途:

a.用于变量上,表示该变量不能被改变,定义时对它进行初始化。

b.用于类变量上,必须定义时初始化。

c.用于指针,可以指定指针也是指定指针对应的数据;

d.用于类的成员函数,放在右边,表明这是一个常量函数,不能修改类的成员变量。

e.用于类的成员函数返回,表明不能作为左值,被赋值。

10,File等

http://www.cnblogs.com/youngt/p/3708655.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 7,566评论 0 10
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 1,876评论 0 7
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,204评论 0 6
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,673评论 0 4
  • 凌晨两点,翻看着那些照片,一次次告诉自己删掉何必再留恋,可是做不到! 每一个我们到过的地方历历在目。可是这又如何,...
    Sunshine_YJ阅读 139评论 0 0