首页 > 编程语言 >C++|变量

C++|变量

时间:2023-01-16 01:22:05浏览次数:67  
标签:字符 变量 int 数据类型 long C++ ASCII

C++|变量


前言

在C++编程中,需要用到很多种变量
本文将详谈几种常见变量
如有错误,欢迎指出


一、数字数据类型

  • 如图所示,虽然 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), 将一个大数字拆分为若干位从而储存的。

由于网上教程很多,不多叙述
推荐:https://blog.csdn.net/PYcharmRoot/article/details/122682074

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;//输出

制作不易,给个推荐吧!

标签:字符,变量,int,数据类型,long,C++,ASCII
From: https://www.cnblogs.com/chiyun010/p/17054557.html

相关文章

  • C#变量的作用域
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespacelearn_val_location{interna......
  • 【c++】以函数调用的方式来书写矩阵乘法
    一、第一版/*m:A的行*o:A的列,B的行*n:B的列*res:存储最终的结果*/voidmulti(doubleA0[21][21],doubleB0[21][21],intm,into,intn,doubleres[21][21]){......
  • 【C++高级编程】(五)编码风格
                                                         ......
  • 常量与变量
    在上一篇博客中我们有提到一个词叫做常量,现在就来讲讲它常量:指的是在程序运行过程中值不会发生改变的量其实我们也有写过,在这个输出语句中,这个1就是常量简单来说程序运行下......
  • C 语言局部 static 变量多线程 DataRace 验证
    验证局部静态变量staticintcnt在无锁情况下的datarace:测试C源码:#include<stdio.h>#include<pthread.h>#include<stdlib.h>void*foo(void*args){s......
  • C++中string占用内存大小
    转自:https://blog.csdn.net/DLUTBruceZhang/article/details/98222351.例子intmain(){strings="abc";cout<<sizeof(s)<<"\n";cout<<sizeof(string)<<"......
  • effective modern c++ - 1 理解模板类别推导
    模板中的行参类型推断会省略引用在这两种模板中,行参的引用都会在推断过程中被省略template<typenameT>//templateAvoidf(T&param);template<typenameT>//temp......
  • C++追加单个字符
    在C++中如何在字符串的后面追加单个的字符呢?代码如下:stringstr;for(chari='A';i<='Z';i++){str+=i;}cout<<str<<endl<<endl;------------------------------......
  • C++获取输入的空格
    在控制台输入输出中,有时候我们想获取用户输入的空格,该如何做呢?在C++中通常的获取输入的方法如下:#include"stdafx.h"#include<iostream>#include<string>usingnamespaces......
  • c++求绝对值
    ---------------------------------------------------------------------------------------C语言中求绝对值的函数为abs(),在C++中对函数abs()进行了重载,这样方便了我们的......