C/C++声明定义初始化和赋值独家剖析深刻理解

3307 人浏览 | 时间: 2015-06-24 17:57:19 | 作者: codexia

    学了这么久的C/C++,以为对这些基本语法理解很深了。结果今天依然困惑重重,以至于今天始终心里堵得慌。
    这个问题是出在一个大项目的一个静态对象成员变量里的。对于静态成员对象的深刻理解,请阅读本站其他文章,我将后续发表。项目中使用了一个类全局静态锁变量,这个变量是一个对象。而在类声明头文件外,单独进行了对象的定义。程序编译确实可以通过,然而我对此却始终不理解,因而还是要下定决心,细细研究,最后发现是对声明定义和初始化三个概念没有彻底理解。
    我敢说,面试时如果出这么一道题,绝对会考倒绝大多数人。题目就是:“C/C++中的声明定义和初始化有什么区别于联系?”当然,很多人是会答得出来,但是能不能答得清楚,就要看理解到什么程度。简单的答法,教科书都有,三者的区别和联系到底如何,还真不是书上所讲的那样。下面进入正题。
    C语言和C++语言中,这三者其实是一个体系的,并不分家。为什么很多时候我们会觉得C语言中的声明和定义等同呢?在以前学习时,有些老师和课本就是这样讲的,但是为什么等同,其实并没有道破,或许是对于初学者来说,不必知道这么些细节或者一些老师压根本身就不清楚,反正在初学阶段,等同看待就行了。然而曾经的那样的理解却导致很多人现在都不理解为什么,也不会去想为什么,只是知道怎么用就行了。
    要理解三者的关系,我们要看到“内存”、看到“结构体”和看到“类”,如果抛开这三者我们是无法全面理解。
    在C/C++中,数据类型分为两大类,基本类型(内置类型,如int,char等)和自定义类型(结构体,类等)。如果始终把目光聚焦于基本类型,则这三者的概念实在难得分清楚。
    基本类型在声明和定义以及内存分配,是等价理解的,几乎是同时进行的,至少在我们使用时,是可以这么认为的。基本类型是我们使用最频繁的,使用也是最简单的。而自定义类型则需要我们自己来声明类型、定义一个变量,然后初始化一个变量,最后就是使用变量。正是因为自定义类型,我们才有机会深入理解这个过程,而基本类型就把这几个封装了,自动完成,我们就很难观察这些过程。而自定义类型则是需要程序员根据规则构建出来的,这个过程我们都可以把握,从而给我们创

请微信扫码阅读。
为防止恶意爬虫,
已开启反爬机制,
理解哟~~~~
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0

相关阅读