C++之整理一些最近看书的收获

1  short 只能修饰 int 。

2  long 只能修饰 int 和 double (以及 long ,比如 long long a ; 是 long long int a; 的简写) 。

3  char 和 int 型数可以分别用 unsigned 和 signed 来修饰,表示带符号和不带符号。

4  实型数( float 和 double )一定是带符号的,不能用 unsigned 或 signed 来修饰。

5  空值类型 void :

  5.1  把 void 说成空值类型并不十分恰当。当 void 作为函数的返回类型时,表明该函数不需要任何类型的返回值。

  5.2  程序运行时,可以动态地申请内存。指向该内存块的指针是 void 指针类型。 void 类型指针可以转换为其他类型指针。

6  #define PI 3.14159265  // 这种定义常量的方法有缺点,因为编译系统不能对常量的数据类型进行检查

7  sizeof()是运算符,不是函数,在用表达式初始化一个常量时(常量在编译时就能求值,用const定义也是一样),表达式中不能含有某个函数,也不能含有某个变量,但是可以用sizeof()。

8  一个实型常量如果不另作说明,其隐含类型是 double 型,添加后缀便改变其类型。例如:

  123.45——无后缀,默认为 double 型,有效位为15。

  123.45F——添加后缀(大写字母 F ),此数改为 float 型,有效位为7。

  123.45f——添加后缀(小写字母 f ),此数改为 float 型,有效位为7。

  123.45L——添加后缀(大写字母 L ),此数改为 long double 型,有效位为19。

  123.45l——添加后缀(小写字母 l ),此数改为 long double 型,有效位为19。

9  假设 a 为 float 型变量。 a = 2.45678 * 4523.65 ,即:以 a 来获取 2.45678 与 4523.65 的乘积。

  这里,float 型变量 a 的有效数字为 7 位,用户对这个精度已经满意。但系统却将 2.45678 和 4523.65 这两个数作为双精度数来处理,因此运算速度降低,而结果却的有效位数仍取决于 a 的类型。为了提高运算速度,可为这两个数添加后缀 F 或 f ,即赋值语句改为:

   a = 2.45678F * 4523.65f  ,这样,编译系统便把这两个操作数视为单精度数来进行计算,结果被赋给 a 而有效的数字仍为 7 位。

10  变量的作用域与可见性

  10.1  变量的有效范围称为作用域( Scope )。

  10.2  可见性( Visualization )指的是变量在某个范围内能否被访问。

  10.3  在变量作用域之外,该变量不可见。但在作用域内,如果先定义一个变量,在其后的一个子域内,又定义一个同名变量,则在该子域内,后者“屏蔽”了前者。换句话说,前一个变量的作用域覆盖其中的子域,但它在子与中是不直接可见的

  10.4  定义于程序块(由花括号 “ { ” 和 “ } ” 括起来的语句序列)内的变量称为局部变量,它的适用范围开始于定义点,终止于本程序块的末尾。这个有效范围称为作用域。 

1 {                        // 块A开始
2 float a,b; // a和b是块A内的局部变量,作用域起始于这一点
3
4 for(int i=0;i<10;i++) // i是块A的局部变量,作用域始于这一点
5 { // 块B开始
6 int j=0; // j是块B内的局部变量,作用域是块B
7 } // 块B结束
8
9 } // 块A结束,变量a,b,i 作用域终止于此

  10.5  内块的变量屏蔽了块外的同名变量,并不意味着内块不能访问外块的同名变量。在内块中,同名变量之前加了辨识符“ :: ” ,则所访问的是外块的那个变量。

 1 {                               //A开始
2 int i = 10;
3 { //B开始
4 int i = 7;
5 cout << i << endl; // 显示块B的i(i=7)
6 { //C开始
7 int i = 5;
8 cout << i << endl; // 显示块C的i(i=5)
9 cout << ::i <<endl; // 显示块B的i(i=7)
10 } //C结束
11 cout << ::i <<endl; // 显示块A的i(i=10)
12 } //B结束
13 cout << i << endl; // 显示块A的i(i=10)
14 } //A结束

  10.6  定义于函数之外的变量称为全局变量。外部变量就是全局变量,其作用域起始于定义点,终止于本源文件的末尾。

  10.7  为了扩大作用域,在定义点之前引用某外部变量,就必须在引用前,用关键字 extern 先声明该外部变量。其定义可以放在引用点之后。

  10.8  在多文件的程序中,如果一个文件已经定义了某个外部变量,则另一个文件可以用关键字 extern 引用该变量。注意:如果两个文件同时定义某个外部变量,则在进行程序的连接时会出现“重复定义”的错误。

  10.9  一般来说,把建立存储空间的说明称为定义( int a; // 定义性声明,要为 a 分配内存空间),而把不需要建立存储空间的说明称为声明( extern b; // 引用性声明,在别处分配内存空间)。

  10.10  外部变量定义与外部变量声明不同。外部变量定义只有一次,其位置必须在所有函数之外,而在同一文件中,外部变量可以多次声明,既可以在函数之外(在定义点之前),也可以在各函数之内。

  10.11  用 static 声明外部变量为静态全局变量,可限制外部变量的作用域,使它只能在本文件内被引用。

11  嵌入指令也可以指定带路径的文件名,例如

1 #include "E:\P\File1.cpp"

 

转载于:https://www.cnblogs.com/cybersword/archive/2011/12/01/Cpp_CyberSword.html

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

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

相关文章

[html] DOM节点的种类有哪些?

[html] DOM节点的种类有哪些&#xff1f; 可以用node.nodeType来获取节点类型返回的是一个数字&#xff0c;1是元素节点&#xff0c;如div&#xff0c;3是文本节点&#xff0c;如div标签中的文字&#xff0c;8是注释节点&#xff0c;9是document节点&#xff0c;11是 Document…

python语句中对象未被定义_python 形参没有被定义???感觉遇到鬼了。。。

按照顺序&#xff0c;给没有key的参数赋值&#xff0c;意味着传递参数时&#xff0c;需按顺序匹配的参数必须出现在按key匹配的参数之前&#xff1b;给按照key匹配的参数赋值&#xff1b;将多余的按照顺序匹配但未匹配的参数值归入*name的tuple中&#xff1b;将多余未匹配上的按…

Silverlight 写了一个2D仿3D的柱状图表

技术上主要用了上一篇博客里关于自定义控件的绑定解决方案&#xff0c;然后就是在blend里做一些简单的颜色动画的调整。 先传个效果出来&#xff1a; 转载于:https://www.cnblogs.com/v-jing/archive/2011/12/01/2270918.html

认识Web.config文件

Web.config文件是一个XML文本文件&#xff0c;它用来储存 ASP.NET Web 应用程序的配置信息&#xff08;如最常用的设置ASP.NET Web 应用程序的身份验证方式&#xff09;&#xff0c;它可以出现在应用程序的每一个目录中。当你通过VB.NET新建一个Web应用程序后&#xff0c;默认情…

labview在2048中添加时间滚动条_Chrome优化深色模式:滚动条颜色也能跟随变化 使上网更具沉浸感...

为了让谷歌浏览器的深色模式(Dark Mode)变得更加一致&#xff0c;谷歌在 Chrome 的滚动条中添加了对深色模式的支持。虽然我们很多人在上网过程中可能不太关注滚动条&#xff0c;但这毕竟是个可喜的变化&#xff0c;从而让 Chrome 的深色模式更具沉浸感。滚动条并不跟随网页浏览…

linux环境安装tomcat8,启动时,报not touch:/user/tomcat/tomcat8/logs/catalina.out:not a file or directory...

问题原因&#xff1a;我的jdk和tomcat都放在root目录下新建的user目录中&#xff0c;但是在配置JAVA_HOME时&#xff0c;路径没有配对。配置如下&#xff1a; export JAVA_HOME/user/jdk/jdk1.7.0_80 export JRE_HOME/user/jdk/jdk1.7.0_80/jre export CLASSPATH.:$JAVA_HOME/l…

中国软件20年,向金山和中国软件英雄致敬!

原文题目&#xff1a;中国软件20年&#xff0c;向金山和不能忘却的中国软件英雄致敬&#xff01; 12日&#xff0c;“中国软件20年&#xff0c;知识英雄再聚首”高峰论坛于在北京召开。此次活动原本是由金山软件发起组织&#xff0c;是金山20周年庆典活动的重要组成部分。但是活…

python prettytable_让python的print变得更好看——prettytable和colorama

【小宅按】python在输出信息的时候&#xff0c;通常会使用print&#xff0c;有没有方法可以美化一下输出的格式呢&#xff1f;这里介绍两个包&#xff1a;prettytablecolorama这两个包都不是Python的标准库&#xff0c;因此在使用之前&#xff0c;需要安装它们。pip install pr…

[html] 你有使用过output标签吗?说说它的用途有哪些?

[html] 你有使用过output标签吗&#xff1f;说说它的用途有哪些&#xff1f; 执行计算然后在 元素中显示结果个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

rational rose 逆向工程

这一节主要介绍用户如何使用Rose的逆向工程生成UML模型&#xff0c;并用来进行C代码的结构分析。 Rational Rose可以支持标准C和Visual C的模型到代码的转换以及逆向工程。下面将详细地说明这两种C project的逆向工程的步骤和具体操作。 2.1 ANSI C&#xff08;标准C&#xff0…

springboot指定注解扫描范围

springboot注解扫描范围是由ComponentScan指定的;默认情况下为启动程序所在目录及其子包; 如果需要指定扫描路径&#xff0c;在启动程序中添加修改 ComponentScan(basePackages{"org.jstudio.a","org.jstudio.b"}) SpringBootApplication public class xxx…

rabbitmq中默认unack超时时间_RabbitMQ 与 Kafka 的技术差异以及使用注意点

导言作为一个有丰富经验的微服务系统架构师&#xff0c;经常有人问我&#xff0c;“应该选择RabbitMQ还是Kafka&#xff1f;”。基于某些原因&#xff0c; 许多开发者会把这两种技术当做等价的来看待。的确&#xff0c;在一些案例场景下选择RabbitMQ还是Kafka没什么差别&#x…

[html] 你有使用过meter标签吗?说说它的用途有哪些?

[html] 你有使用过meter标签吗&#xff1f;说说它的用途有哪些&#xff1f; <meter> 标签定义已知范围或分数值内的标量测量。也被称为 gauge&#xff08;尺度&#xff09;。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持…

Linux环境安装zookeeper3.5.5后,总是启动不了

问题原因&#xff1a;我的jdk是1.7的&#xff0c;刚开始安装完zookeeper3.5.5之后&#xff0c;总是启动不了。查看所有的配置信息都没有问题。最后怀疑是jdk版本和zookeeper3.5.5不兼容&#xff0c;所以换了一个zookeeper3.4.14&#xff0c;终于启动成功了。好坑&#xff0c;就…

五桌面工具来创建优秀的Windows环境

很多工具并不实用&#xff0c;都说能解压文件什么的&#xff0c;今天我给你们几个牛逼的 文件修复 文件修复软件是一个功能强大的工具来修复损坏的文件。它可以扫描损坏的文件&#xff0c;并提取到一个新的可用文件的最大数据。您可以修复Word文档&#xff0c;Excel电子表格&am…

wxpython下载很慢_为什么WxPythons运动检测速度如此之慢?

我设置on_motion来处理EVT_MOTION.我希望鼠标位置以交互方式生成特定于坐标的图像,但是WxPython在注册连续的运动事件时有大约400ms的延迟.这使界面变得迟钝.为什么EVT_MOTION如此缓慢以及如何解决&#xff1f;我在Ubuntu 11.10和WinXP中试过它,延迟是可比的吗&#xff1f;我需…

假设以邻接矩阵作为图的存储结构_图的存储

因为图的结构特点&#xff0c;使得其在存储、遍历也相对复杂一些。邻接矩阵存储图最简单的方式就是将图的顶点用一维数组存储进来&#xff0c;然后将边信息存储在二维矩阵中&#xff0c;这两个数组合称为图的邻接矩阵&#xff08;Adjacency Matrix&#xff09;。无向图的邻接矩…

博客主题正在修改....

博客主题正在修改.... 转载于:https://www.cnblogs.com/lingqingxue/p/11330198.html

哎呀!小晖

哎呀&#xff01;丁俊晖又输了&#xff0c;怎么一看丁俊晖的比赛&#xff0c;他就得不了冠军呢&#xff01;不过输给了萝卜丝&#xff0c;不算丢人。 这次英锦赛傅家俊&#xff0c;虽然和小晖一样止步于八强&#xff0c;但发挥的很不错了&#xff0c;终于走出了低迷&#xff0c…

python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象

Python数据分析之Numpy学习 2 —— NumPy 基础学习NumPy(Numerical Python)是高性能科学计算和数据分析的基础包。NumPy的主要对象是同构数据多维容器(homogeneous multidimensional array)——ndarray&#xff0c;也就是说每一个ndarray都是一个相同类型元素组成的表格(二维)。…