文档章节

c++数据类型和定义

芥末小弟
 芥末小弟
发布于 2017/03/01 09:54
字数 1023
阅读 1
收藏 0
点赞 0
评论 0

我们都知道,刚开始学习数学的时候。乘法口诀。99乘法口诀。这个是大家都需要背的。背熟了这个,大家才能知道遇到算术题如何计算。这个99乘法口诀就是一种定义。

同样任何的语言都会有很多的定义。比如语文:各种各样的中文字,英语26个字母。等等。

在软件的开发中,我们全世界那么多开发人员,如何教大家写的都互相认识呢?这里肯定的定义一个标准。做过前端开发的都知道,我们有W3C标准。这样做的目的不仅仅是为了全球的规划统一,更重要的是,对于其他一个任意地方的学过相同开发语言的人来说,在看公司的之前人做的东西,是可以看懂的。这样能减少公司的单独培训新员工。当然,牛逼的公司都有自己的技术。我就不说了。

乱七八糟说了这么多。我们不难发现最终要的也是我们所有开发人员最需要知道的。最明确的目的,那就是做软件其实就是为了处理更多日常的生活的数据。

 

c++处理数据

在C++中我们做出来的软件也同样实在处理数据。但是在处理数据之前。我们需要了解这门语言的基本语法。

1、C++的变量的命名规则。

2、C++有哪些定义好了的数据类型

3、C++支持那些运算法则(有那些算数运算符)

4、C++各个数据类型之间的数据类型如何进行转化的?(1自动转换,2强制转换)

A、C++命名规则:
  在名称中只能使用字母字符、数字、和下划线(_).

  名称的第一个字符不能是数字

  区分大小写字符

  不能将关键字作为名称使用

  

B、数据类型

按照宽度底层的顺序排列分别是: char、short、int、long 和C++11新增的long  long。其中每种类型都有符号版本和无符号版本。因此总共有10种类型可供选择。

整型:short、int、long和long long

    补充:应为计算机的内存由一些叫做位(bit)的单元组成。C++中的short、int、long和long long类型通过使用不同数目的位来存储值,最多能够表示4种不同的整数宽度。

    由于受操作系统的不同的限制。数据类型的长度就不一定了。但是C++提供了一种灵活的标准,它确保了最小长度(从C语言借鉴来的)。

  short》=16bit     int》=short     long>=32bit&&long》=int         long long >=64bit &&long>=long

      

  位和字节

  计算机的内存的最小的单位是bit。一个字节=8位   所以 1字节=2*2*2*2*2*2*2*2=256    所以8位单元可以表示0-255 或者-128-127

这里我们可以用一个cpp文件计算出,所有整型的byte和数值范围

#include <iostream>
#include <climits>//old system
int main(){
    using namespace std;
    int n_int = INT_MAX;
    short n_short = SHRT_MAX;
    long n_long = LONG_MAX;
    long long n_llong = LLONG_MAX;
    cout << "int byte" << sizeof(int) << endl;
    cout << "short byte" << sizeof(short) << endl;
    cout << "long byte" << sizeof(long) << endl;
    cout << "long long byte" << sizeof(long long) << endl;


    cout << "******max values*******" << endl;
    cout << "int : " << n_int<< endl;
    cout << "short : " <<n_short<< endl;
    cout << "long : " << n_long<< endl;
    cout << "long long : " << n_llong<< endl;
    
    system("pause");
    return 0;
}
View Code

 

说明:

sizeof()  和头文件   limits

sizeof 运算符指出,在8为字节的系统中,int的长度为4个字节。对类型、或变量使用sizeof()可以使用

 climit中常用的符号常量:

 

符号常量 表示
CHAR_BIT char 的位数
CHAR_MAX char 的最大值
CHAR_MIN char 的最小值
SCHAR_MAX signed char 的最大值
SCHAR_MIN signed char 的最小值
UCHAR_MAX unsigned char 的最大值
SHRT_MAX short 的最大值
SHRT_MIN short 的最小值
USHRT_MAX unsigned short 的最大值
INT_MAX int 的最大值
INT_MIN int 的最小值
UNIT_MAX unsigned int 的最大值
LONG_MAX long 的最大值
LONG_MIN long 的最小值
LONG_MAX unsigned long 的最大值

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
芥末小弟
粉丝 0
博文 202
码字总数 120715
作品 0
昌平
4-C++远征之起航篇-学习笔记

c++教程起航篇 我们会讲C++那些事,C++与C语言的关系。 C++诞生于贝尔实验室。 C++之父: 本贾尼·斯特劳斯特卢普 C++社区排行榜 最新排行,c++排名第三,Python排名第四 C++语言的应用领域:...

天涯明月笙
前天
0
0
C++中的 .h 和 .cpp 区别详解

在C++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析。于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念。 对于以C起步,C#作为“母语...

刘小米
2014/09/18
0
0
Linux中常用C/C++一些头文件的作用

1、 Linux中一些头文件的作用: <assert.h>:ANSI C。提供断言,assert(表达式) <glib.h>:GCC。GTK,GNOME的基础库,提供很多有用的函数,如有数据结构操作函数。使用glib只需要包含<glib.h...

SibylY
2013/09/25
0
0
C语言编程基础学习如何定义一维数组和二维数组

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
04/01
0
0
COM封装字节数组,并用于C#/c++中

由于项目开发需要,原有的程序用C++开发,但是现有用C#开发,所以需要对用C++开发的接口利用COM进行封装,供c#语言调用,在此处用到一个字节数组,所以此处对其进行封装。 (一)用到的COM接...

西昆仑
2012/04/27
0
1
C语言/C++编程基础学习,带你深入理解常量与变量

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
06/06
0
0
C++中模拟反射填充消息struct

问题 我正做的一个项目需要在Erlang 节点和C++ 节点之间传输大量的事件,在C++这一侧,使用struct储存这些消息。 自然的,我需要很多struct,例如: struct msg_greeting{ std::string sender...

738433896
2014/01/26
0
4
C#调用C的Dll(类型对照)

C#调用C的DLL //C++中的DLL函数原型为 //extern "C" declspec(dllexport) bool 方法名一(const char 变量名1, unsigned char 变量名2) //extern "C" declspec(dllexport) bool 方法名二(cons......

KavenSu
2014/04/30
0
0
C++11 中值得关注的几大变化

源文章来自前C++标准委员会的 Danny Kalev 的 The Biggest Changes in C++11 (and Why You Should Care),赖勇浩做了一个中文翻译在这里。所以,我就不翻译了,我在这里仅对文中提到的这些变...

雅各宾
2014/01/17
0
0
用LuaBridge为Lua绑定C/C++对象

最近为了总结Lua绑定C/C++对象的各种方法、第三方库和原理,学习了LuaBridge库为Lua绑定C/C++对象,下面是学习笔记,实质是对该库的Reference Manual基本上翻译了一遍,学习过程中测试代码,...

shezjl
2015/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
43分钟前
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
54分钟前
2
0
将博客搬至CSDN

AHUSKY
今天
1
0
Python web框架Django学习(1)

1.Django简介 (1)Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。 (2...

十年磨一剑3344
今天
0
0
Databook-数据之书

Databook-数据之书 用于数据分析的Jupyter Notebooks。 不需购买服务器,快速开始自己的数据分析过程。 源码:https://github.com/openthings/databook 作者:openthings,https://github.co...

openthings
今天
5
0
Python PIPEs

https://www.python-course.eu/pipes.php https://www.tutorialspoint.com/python/os_pipe.htm

zungyiu
今天
1
0
gRPC学习笔记

gRPC编程流程 1. proto文件定义 proto文件用于定义需要通过gRPC生成的接口,可以理解为接口定义文档 2. 通过构建工具生成服务基类代码-Maven或Gradle 3. 服务端开发 服务端实现类须实现通过构...

OSC_fly
今天
0
0
Docker Mac (三) Dockerfile 及命令

Dockerfile 最近学习docker的时候,遇到一件怪事,关于docker镜像可能会被破坏,还不知道它会有此措施 所以需要了解构建Dockerfile的正确方法 Dockerfile是由一系列命令和参数构成的脚本,这些命...

___大侠
今天
0
0
Android Studio+NDK+Cmake 移植FFmpeg-4.0.2命令行工具

一、编译 参考大神的帖子,亲测一次编译成功:https://blog.csdn.net/bobcat_kay/article/details/80889398 鉴于以前查文档的经验,这里附上编写例子的时间:2018年7月22日 我用的是ubantu,...

她叫我小渝
今天
0
0
mysql创建数据库

登录MYSQL mysql -u root -p 脚本创建数据库WeChat,并制定默认的字符集是utf8mb4。 CREATE DATABASE Wechat DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci; 授权 grant all......

niithub
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部