c变量存储区域(C++|变量)
C++|变量
前言
在C++编程中 ,需要用到很多种变量
本文将详谈几种常见变量
如有错误 ,欢迎指出零 、变量格式
定义并赋值 数据类型 变量名=值; 定义 数据类型 变量名; 赋值 变量名=值; 输入 cin>>变量名; 输出 cout<<变量名;一 、数字数据类型
如图所示 ,虽然 C++ 提供了许多数据类型 ,但在最广泛的意义上只有两个:数字和字符 。数字数据类型可直接比较 ,分为两类:整数和浮点数 。
为数字变量选择最佳数据类型的主要考虑因素如下:
变量是需要保存整数还是浮点数值; 变量需要存储的最大数和最小数; 变量是需要保存符号(正数和负数)还是只需要保存无符号(只有 0 和正数)数字; 存储在变量中的值所需的小数位数精度;1.整型数据类型
如图2所示 ,C++ 有 8 种不同的数据类型用于存储整数。它们拥有的存储数据的内存字节和可以存储的数值范围是不一样的 。数据类型可以容纳的字节数称为其大小 。一般来说 ,数据类型的大小越大 ,那么它可以容纳的值的范围越大 。
这里我们挑选最常用的 int 和 long long 讲
1、int 取值范围C++中 ,int占用4字节,32比特 ,数据范围为-2147483648~2147483647
简单来说 ,就是十位以下的整数用int类型
2 、long long对于小点的数字,int足够了 。
但万一数大了呢?
像1,145,141,919,810这样的数字 ,int很显然是不够的
这时候 ,就需要long long 类型了 取值范围C++中,long long占用64比特 ,数据范围为-9223372036854775808~9223372036854775807
简单来说 ,就是十位以上的整数用long long类型
注:long long消耗的内存是int的2倍 ,long long的运算速度比int慢得多 ,所以能用int解决能满足有效输出时 ,尽量不要使用long long 。 3 、高精度在一些题目中 ,往往会出现一些天文数字 ,
比如114514114514114514114514114514114514
这时候 ,就需要使用高精度了 。高精度算法:属于处理大数字的数学计算方法 ,是用计算机对于超大数据的一种模拟加,减 ,乘 ,除等运算 。对于非常庞大的数字无法在计算机中正常存储,于是 ,将这个数字拆开 ,拆成一位一位的存储到一个数组中, 用一个数组去表示一个数字 ,这样这个数字就被称为是高精度数 。
高精度数是通过字符数组(char[ ])或 字符串(string) , 将一个大数字拆分为若干位从而储存的 。
由于网上教程很多 ,不多叙述
推荐2.浮点型数据类型
C++中有三种浮点类型 按照精度的不同划分如下:
(1)float: 单精度类型 7位数
(2)double: 双精度类型 15位数
(3)long double: 长双精度类型 19位数在使用这一类数据类型时 ,记住“越小越好 ” ,能用float就用 ,最好不用long double
二 、字符数据类型
C++不但可以处理数字类型的值 ,也可以处理字符
字符指的是英文字母及各种符号 、数字 ,通过ASCII码存储
常见的字符类型有char与string。1.ASCII码
ASCII码是基于拉丁字母的一套电脑编码系统 ,
计算机根据输入的字符(图形)以对应的ASCII码值存储在电脑中 。因为ASCII码值(整数)与字符(字)挂钩,
所以将字符(非数字)赋值给整数类型(如int) ,
默认为将对应的ASCII码值赋值给整数类型 。
例如 int a=A; == //因为A的ASCII码为65 int a=65;2.char
char代表一个单独的字符。
由于是以输入的字符(图形)以对应的ASCII码值存储在电脑中的 ,
在比较大小时是以ASCII码值比较 。 例如 a < b 返回1,因为a的ASCII码是97 ,b的ASCII码是98 a < A 返回0 ,因为a的ASCII码是97,A的ASCII码是65注:1与0在此为布尔型 ,下文会讲 。
3.string
string是字符串类型 ,相当于由n个char型字符组成。
与字符数组(char[ ])类似 ,但不需要知道字符个数 ,不必 担心内存是否足够 。
因此 ,常用于存储一些天文数字(高精度) 。
使用时需要头文件<string> ,并配备一系列函数 。string常用函数用法总结
三 、布尔型(bool)
这是一种特殊的数据类型 ,只有两个值:1(真)和 0(假)
例如
//输入x ,判断x是否为素数 。若是 ,则输出真(1),否则输出假(0) 。 int x; cin>>x;//输入 bool a=1;//默认为是 for (int j = 2; j <= sqrt(x); j++) { if (x % j == 0) { a=0;//有因数则不是 ,为假 。 } } cout<<a<<endl;//输出制作不易 ,给个推荐吧!
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!