【C++ Primer学习笔记】第2章:变量和基本类型

 

类型是所有程序的基础。类型告诉我们数据代表什么意思以及可以对数据执行哪些操作。

 

C++中对类型的支持是非常广泛的:语言自身定义了一组基础类型和修改已有类型的方法,还提供了一组特征用于自定义类型。

 


2.1基本内置类型

wchar_t类型用于扩展字符,比如汉字和日语,这些字符集中的一些字符不能用单个char表示。

 

整型:在大多数机器上,使用int类型进行整型计算不易出错。

 

浮点型:使用double类型基本上不会有错。

 


 

2.2字面值常量

 

只有内置类型存在字面值。

 

定义长整型时,应使用大写字母L,小写字母l容易和1混淆。

 

两个相邻的仅由空格、制表符或换行符分开的字符串字面值,可连接成一个新的字符串字面值。这使得多行书写字符串字面值变得简单。

 

在一行的末尾加一个反斜线符号可将此行和下一行当做同一行处理。

 


 

2.3变量

 

C++两种表达式:左值(可出现在赋值语句左边和右边)、右值(只出现在赋值的右边)

 

对象是内存中具有类型的区域。

 

标识符不能包含两个连续的下划线,也不能以下划线开头后面紧跟一个大写字母。

 

在C++中初始化和赋值是两种不同的操作。

 

建议每个内置类型的对象都要初始化。

 

只有当extern声明位于函数外部时,在可以含有初始化式。

 

任何在多个文件中使用的变量都需要有与定义分离的声明。在这种情况下,一个文件包含变量的定义,使用该变量的其他文件则包含该变量的声明。

 

通常把一个对象定义在它首次使用的地方是一个很好的方法。

 


 

2.4const限定符

 

非const变量默认为extern。要使const变量能够在其他文件中访问,必须显式的指定它为extern。

 


 

2.5引用

 

const引用是指向const对象的引用。

 

将普通引用绑定到const对象是不合法的。

 

const引用可以初始化为不同类型的对象或者初始化为初值。

 


 

2.6 typedef名字

 

隐藏特定类型实现,强调使用类型的目的

 

简化复杂的类型定义,使其更易理解

 

允许一种类型用于多个目的,同时使得每次使用该类型的目的明确

 


 

2.7枚举

 

枚举类型的对象的初始化或赋值,只能通过其枚举成员或者同一枚举类型的其他对象类进行。

 


 

2.8类类型

 

编程新手经常会忘记类定义后面的分号,这是个很普遍的错误。

 


 

2.9编写自己的头文件

 

头文件一般包含类的定义、extern变量的声明和函数的声明。

 

因为有文件包含在多个源文件中,所以不应该含有变量或函数的定义。

 

头文件可以定义类、值在编译时就已知道的const对象和inline函数。

 

我们必须保证多次包含同一文件不会引起该头文件定义的类和对象被多次定义。(使用预处理器定义头文件保护符)

 

为了避免名字冲突,预处理器变量经常用全大写字母表示。

 



转载于:https://www.cnblogs.com/klxiaohao/archive/2012/03/05/2381060.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 系统文件夹功能(转)

打开Android文件管理器,里面数十个英文名称命名的文件夹罗列其中,很多功能我们可以从其名字上略有所知,内部大批量的文件却让我们有些一头雾水。这些文件是什么?有什么用?我们能不能删?这些都是我们脑中充满疑问的。今日笔者就将Android手…

Dapr牵手.NET学习笔记:状态管理进阶(二)

为了防止并发对数据修改造成差异,dapr使用了etag标签来作为版本号,对数据修改进行验证。下面是对etag的一个demoappsettings.json中的url配置"StateUrl": "http://localhost:3500/v1.0/state/statestore"在PaymentSystem项目中添加两…

这三位同学的名字绝了!笑得肚子疼......

1 这三位同学的名字绝了!▼2 我是一只小海豹我在假装跷跷板▼3 单身狗受到暴击▼4 小宝宝真可怜打针打出了条件反射▼5 每生成一个验证码都有一位程序员......▼6 虽然腿短但是人家跑得快啊▼7 内容引起极度舒适▼你点的每个赞,我都认真当成了喜欢…

python统计出现的中文标点_Python处理中文标点符号大集合

中文文本中可能出现的标点符号来源比较复杂,通过匹配等手段对他们处理的时候需要格外小心,防止遗漏。以下为在下处理中文标点的时候采用的两种方法:中文标点集合比较常见标点有这些:!?。"&#x…

从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)

从hadoop框架与MapReduce模式中谈海量数据处理前言几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,认为它们非常是神奇,而神奇的东西常能勾起我的兴趣,在看过介绍它们的文…

WPF过渡面板

WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织欢迎转发、分享、点赞、在看,谢谢~。 前言效果投稿来源于-郑竣僖 QQ:41130958301—效果预览效果预览(更多效果请下载源码体验):一、Tra…

UScript中的Pow函数

这些天越来越发现数学的重要和妙趣了, 由于一些地方需要使用指数次幂来实现更好的效果, 想当然地去找pow函数,把Object和Actor翻了个底朝天 。。。 结果可想而知, 也正好,尝试了一把UScript和C的混编,但搜一…

PM与工程师

原文链接:http://firecacada.blog.163.com/blog/static/70743762011117114451722/ 过节前看到一篇文章,讲产品项目就应该由工程师来主导,但国内让PM去驱动项目,搞得乱七八糟,很恼火,怎么可能做出一款好产品…

哪些才是对女朋友的有效关心,来学习一下~

1 这本书真好,在哪里才能买得到呢?2 求求你,不要抢我的小毛虫!3 所有的乘客请系好安全带4 小朋友非常可爱了5 字幕组真的尽力了!6 学习了7 10月16日,平安南京 根据真实接警经历,发布一则警示案例…

fabric 转账_Fabric 学习笔记-架构初探

本文介绍了Fabric的架构,以及通过一个简单的Demo来熟悉整个交易流程。Hyperledger fabric V1.0的架构如下图所示:application提供各种语言的SDK接口。membership也就是fabric-ca提供成员服务,用来管理身份,提供授权和认证。peer负…

多个goruntine 性能变慢_提高 JavaScript 性能的 12 个技巧

作者丨Liz Parody在创建 Web 应用程序时应始终考虑性能。为了帮助你开始,本文列举了有效提高应用程序性能的 12 种方法。性能是创建网页或应用程序时最重要的一个方面。没有人想要应用程序崩溃或者网页无法加载,或者用户的等待时间很长。根据 Kissmetric…

#celery#周期性任务

2019独角兽企业重金招聘Python工程师标准>>> 玩了一个星期的clannad,是时候干点事了。 折腾了下celery周期性任务: celery提供了一个叫celery beat的服务,用于定时驱使worker执行任务。也就是说,如果本地没有活动的wor…

WTMPlus 1.1 发布

点击上方蓝字关注我们1.1版本WTMPlus上线一个多月以来,得到了越来越多用户的喜爱。虽然1.0版本还有不少问题,但是它的核心理念和功能受到了用户的认可。1.1版本修复了大量用户反馈的易用性的问题和系统Bug,并且加入了强悍的图表工具。图表编辑…

backgroundworder 简单使用

//手动创建backgroundworker组件///创建 private backgroundworker bgd new backgroundworker(); ///声明xmldoment private xmldoment doment null; /// Load 加载事件 private void Form1_Load(object sender , EventArgs e) { /// 执行操作 this.bgd.DoWorker delegate(ob…

4部“教材级”纪录片,有生之年必看系列!

全世界只有3.14 % 的人关注了爆炸吧知识纪录片是以真实生活为创作素材,以真人真事为表现对象,并对其进行艺术的加工与展现的,以展现真实为本质,并用真实引发人们思考的电影或电视艺术形式。好的纪录片就像打开了一扇新世界的大门&…

mysql数据恢复时显示多线程恢复_MySQL多线程备份恢复工具mydumper,myloder

mydumper备份时,数据和表结构是分开的,比如备份test表时,会生成test.sql文件和test.schema.sql文件。myloader导数据的时候默认不会记录二进制日志,即使你的sql_log_binon.准备安装介质:下载mydumper-0.6.2.tar.gz下载…

IM实现联系人及联系人分组的数据库设计

openfire中通过ofgroup/ofgroupprop/ofgroupuser实现组织结构中的分组,通过ofroster/ofrostergroups实现好友关系中的分组。但是呢,我们做二次开发的时候,希望能够有自己的个人联系人及分组,它没有确认过程,也就是说&a…

python生成器yield原理_Python generator生成器和yield表达式详解

前言Python生成器(generator)并不是一个晦涩难懂的概念。相比于MetaClass和Closure等概念,其较为容易理解和掌握。但相对于程序结构:顺序、循环和分支而言其又不是特别的直观。无论学习任何的东西,概念都是非常重要的。正确树立并掌握一些基础…

Java 操作POI 之复制sheet页

2019独角兽企业重金招聘Python工程师标准>>> 来点干货直接上代码,就不细说了 package com.qs.web.tools.core.excel; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.TreeSet; import org.apache.poi.hssf.us…

Serverless 落地实践

.Net Core Serverless初体验什么是ServerlessServerless 是一个当今软件世界中比较新的话题。它并没有一个普遍公认的权威定义,每个人每个企业对它的解释可能都有不同,而 Serverless 正是在这种情况下不断发发展的。但是就算如此,有一些 Serv…