文章目录

  • 目录
    • 一. 数据类型
      • C++ 中的数据类型
      • typedef
      • enumeration枚举类型
      • c++中变量类型
    • 二.变量作用域
    • 三.常量
    • 四.修饰符类型

目录

一. 数据类型

C++ 中的数据类型

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。

您可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。


一些基本类型可以使用一个或多个类型修饰符进行修饰:signed , unsigned ,short ,long

下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。
注意:不同系统会有所差异。

从上表可得知,变量的大小会根据编译器和所使用的电脑而有所不同。
下面实例会输出您电脑上各种数据类型的大小。

#include<iostream>
#include<string>
#include <limits>
using namespace std;
int main()
{  cout << "short: \t\t"  << "所占字节数:" << sizeof(short);  cout << "\t最大值:"  << (numeric_limits<short>::max)();cout << "\t\t最小值:"<< (numeric_limits<short>::min)() <<endl;
}

typedef

enumeration枚举类型


例子

#include <iostream>
using namespace std;
enum time {first,second,third,forth,fifth};int main()
{enum time a=fifth;if (a==fifth) {cout << a <<endl;cout << "Succeed!";}return 0;
}

运行结果:
4
Succeed!

c++中变量类型

变量其实只不过是程序可操作的存储区的名称。C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。
变量的名称可以由字母、数字和下划线字符组成。它必须以字母或下划线开头。大写字母和小写字母是不同的,因为 C++ 是大小写敏感的。
基于前一章讲解的基本类型,有以下几种基本的变量类型,将在下一章中进行讲解


注意

C++ 也允许定义各种其他类型的变量,比如枚举、指针、数组、引用、数据结构、类等等,这将会在后续的章节中进行讲解。


变量只能定义一次,可以使用extern关键字在多个文件中声明多次
例子

#include <iostream>
using namespace std;// 变量声明
extern int a, b;  //在头文件被申明过
extern int c;
extern float f;int main ()
{// 变量定义int a, b;int c;float f;// 实际初始化a = 10;b = 20;c = a + b;cout << c << endl ;f = 70.0/3.0;cout << f << endl ;return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:
30
23.333

**同样的,在函数声明时,提供一个函数名,而函数的实际定义则可以在任何地方进行。**例如:

// 函数声明
int func();int main()
{// 函数调用int i = func();
}// 函数定义
int func()
{return 0;
}



二.变量作用域



在程序中,局部变量和全局变量的名称可以相同,但是在函数内,局部变量的值会覆盖全局变量的值。下面是一个实例:


全局变量系统自动初始化,局部变量系统不会自动初始化
定义变量时,最好进行初始化

#include <iostream>
using namespace std;// 全局变量声明
int g = 99;// 函数声明
int func();int main()
{// 局部变量声明int g = 10;cout << g << endl;int kk = func();cout << kk << endl;return 0;
}// 函数定义
int func()
{return g;
}

运行结果:
10
99


运行结果:
此时的全局变量为:20
被改变的全局变量为:30
此时的全局变量为:30

三.常量












const 限定符定以后是不可以改变的,所以在定义时赋初值,否则是错误的 ;除非这个变量是用extern修饰的外部变量

四.修饰符类型





explicit构造函数是用来防止隐式转换的。请看下面的代码:

class Test1
{public:Test1(int n){num=n;}//普通构造函数
private:int num;
};
class Test2
{public:explicit Test2(int n){num=n;}//explicit(显式)构造函数
private:int num;
};
int main()
{Test1 t1=12;//隐式调用其构造函数,成功Test2 t2=12;//编译错误,不能隐式调用其构造函数Test2 t2(12);//显式调用成功return 0;
}

Test1的构造函数带一个int型的参数,代码23行会隐式转换成调用Test1的这个构造函数。而Test2的构造函数被声明为explicit(显式),这表示不能通过隐式转换来调用这个构造函数,因此代码24行会出现编译错误。
普通构造函数能够被隐式调用。而explicit构造函数只能被显式调用

C++基础学习(02)--(数据类型,变量类型,变量作用域,常量,修饰符类型)相关推荐

  1. ArcGIS基础学习:数据类型

    ArcGIS基础学习:数据类型 前言 最近喜欢上了学习地理统计的相关内容,准备开始学习,会不定时修改. 第一章 数据类型 一.arcgis数据类型: 1.数字型:整数型.单精度浮点型.双精度浮点型 2 ...

  2. C++中的修饰符类型

    1.Cpp修饰符类型 C++允许在char.int 和double数据类型前放置修饰符.修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求.下面列出了数据类型修饰符: signed unsig ...

  3. JAVA修饰符类型(public,protected,private,friendly)

    JAVA修饰符类型(public,protected,private,friendly) public的类.类属变量及方法,包内及包外的不论什么类均能够訪问: protected的类.类属变量及方法, ...

  4. python 声明变量类型_python基础学习03数据类型和变量

    数据类型和变量 1. 数据类型 1.1 整数 Python中不限制整数正负及大小,例如:1,-1,100,-100等等.计算机常用十进制和十六进制表示数值,比如十六进制表示方法是用前缀0x加后缀0-9 ...

  5. python保存数据型变量_Python基础学习笔记(一)变量与数据类型

    https://m.toutiao.com/is/J3fN6eK/ Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如N ...

  6. python 去掉双引号_Python基础学习笔记(一)变量与数据类型

    Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如Numpy(数值计算).SciPy(数学.科学与工程计算).Matpl ...

  7. Spark基础学习笔记09:Scala变量与数据类型

    文章目录 零.本讲学习目标 一.变量声明 (一)简单说明 (二)利用val声明变量 1.声明方式 2.案例演示 (三)利用var声明变量 1.声明方式 2.案例演示 (四)换行输入语句(续行) (五) ...

  8. 【Python基础学习笔记day08】python变量的基本使用+变量定义ipython+pycharm+超市买苹果+变量的类型+关于函数+变量的格式化输出+个人名片案例

    变量的基本使用 文章目录 变量的基本使用 目标 01. 变量定义 1) 变量演练1 -- iPython 2) 变量演练 2 -- PyCharm 3) 变量演练 3 -- 超市买苹果 思考题 02. ...

  9. c语言基本数据类型常量,C语言基础学习基本数据类型-变量和常量

    变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法 ...

最新文章

  1. android activity启动流程_1307页!一线大厂Android面试全套真题解析!
  2. Nav- buttons和$ionicView
  3. 【ARM】Tiny4412裸板编程之异常
  4. 从基于直方图的Graph-Cut到Grab-Cut
  5. Apollo进阶课程㊷丨Apollo实战——车辆与循迹驾驶能力实战
  6. 晋职称不考外语 计算机,评职称不考外语计算机的价值导向
  7. FTP 编写 4:命令解析
  8. Type Cannot change version of project facet Dynamic Web Module to 3.0
  9. Javascript 脚本错误.
  10. weblogic-修改控制台登录密码
  11. HTTP请求和MIME介绍
  12. easyexcell导出专题
  13. CentOS安装网络驱动
  14. 浏览器中在线预览pdf文件(不使用插件)
  15. Robocode 圆周瞄准算法机器人
  16. Arm云游戏及虚拟化技术沙龙,Arm中国,NVIDIA,腾讯及百度等为你分享超强技术干货
  17. 算法训练营 图的应用(拓扑排序)
  18. 用EasyHMI做的工程示例一览
  19. JL 杰理 AC692N系列TWS 蓝牙音箱 开发
  20. \xe5\x8d\xa0\xe7\x94\xa8\xe3\x80\x82,16进制乱码转化为可读字符

热门文章

  1. WINCE6.0 DM.EXE 激活驱动失败的原因之一
  2. Oracle客户端与java_Oracle 谈 JavaFX 及 Java 客户端技术的未来
  3. python免费学校_清华大学,的python学习路线,免费分享给小白福利
  4. 【转】Dynamics CRM 365零基础入门学习(二)Dynamics 插件注册的基本流程
  5. SharePoint无代码工作流设计开发实例——交通费报销流程(一)
  6. 【Python CheckiO 题解】Between Markers
  7. Selenium 显式等待条件及其含义
  8. 连续反应matlab,MATLAB和Monte Carlo法在连续反应动力学中的应用.pdf
  9. 增效工具_【危中寻机】降本增效生存之道 运用IE基础工具提升制造效率
  10. 【CodeForces - 518D】Ilya and Escalator(概率dp,数学期望)