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

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

查看 codexia 的博客 2015-06-24 17:57:19 2635
声明   定义   初始化   赋值  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介尽管你学了很久C/C++,但是对于这个太平常的问题,你或许依然解释不清楚。即使是经典书籍,或许也没有对声明、定义和初始化这三者的概念和关系在书中描述清楚。依然以内存为基础来讲解这三者的区别,绝对会让你对这三个概念的关系恍然大悟。我相信你知道,但是请静下心看看,一定会有意外的收获。本文不是为了讲述这些基础知识,而是以专题的形式将三者的关系说清楚,是引导大家深刻的理解而不是讲述知识要点。在C++后期的学习和应用中就可能遇见这些基础的东西会让你久久困惑,越是显而易见,你如果没有一个清晰的视角,越是困于其中。
感谢 阿里云 对本站(本站由阿里云高性能服务器搭建)的赞助支持,本站推荐 →高性能云服务器2折起优惠由此进←↓
高性能云服务器2折起

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

关注左侧公众号
发送命令 rd eQS)S 复制
自动刷新 手动刷新
传送命令到手机
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。推荐使用“传送命令到手机”,一键复制命令并自动跳转到公众号。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您在公众号发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:C/C++声明定义初始化和赋值独家剖析深刻理解
文章地址:http://www.cjjjs.com/article/6242015195717332
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:C/C++声明定义初始化和赋值独家剖析深刻理解
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. C++ Primer Plus 6th 4.13 编程练习题 第5题 结构体的声明、初始化和使用 查找全网同类文章
  2. C++ Primer Plus 6th 4.12 复习题 第11题 声明指针并输出指针的值 查找全网同类文章
  3. C++ Primer Plus 6th 4.12 复习题 第10题 定义枚举变量 查找全网同类文章
  4. C++ Primer Plus 6th 4.12 复习题 第9题 结构体变量的声明并初始化 查找全网同类文章
  5. C++ Primer Plus 6th 4.12 复习题 第8题 结构体类型声明 查找全网同类文章
  6. C++ Primer Plus 6th 4.12 复习题 第7题 声明并初始化string对象 查找全网同类文章
  7. C++ Primer Plus 6th 4.12 复习题 第6题 声明并初始化数组 查找全网同类文章
  8. C++ Primer Plus 6th 4.12 复习题 第3题 声明并初始化数组 查找全网同类文章
  9. C++ Primer Plus 6th 4.12 复习题 第1题 声明数组变量 查找全网同类文章
  10. C++ Primer Plus 6th 3.6 复习题 第2题 声明变量 查找全网同类文章
分享到:
分享文章[C/C++声明定义初始化和赋值独家剖析深刻理解]到QQ空间

相关阅读

猜您感兴趣