C++数据类型(data type)介绍

    在编写程序时,数据类型(data type)定义了使用存储空间的(内存)的方式。

    程序员通过定义数据类型(data type),告诉特定存储空间这里要存储的数据类型是什么,以及你即将操作他的方式。(注:存储空间有:堆存储,栈,静态存储等,后面再仔细去研究)

1.数据类型可以是内部的或者抽象的。

            内建数据类型:

                                内建数据类型是编译器可以理解的数据类型,直接与编译器关联。C++在这里几乎完全继承了C 的数据类型。或者称为基本数据类型

            抽象数据类型:

                                可以先理解为一个类(C++灵魂的精髓,数据类型:类),它是由我们自己或者别的用户自行定义的数据类型。(这里学习类的时候在仔细学习) 



2.  基本内建类型(又称,基本数据类型

      标准C的内建类型(由C++继承)没有说明必须多少位。只是规定了内部数据类型必须能存储的最大值和最小值。

      C++和C内部数据类型有4个基本类型。分别是:char,int, float & double 。(如下介绍:




 2.1 说明符(specifier)

      说明符(specifier)用于改变基本内建类型的含义,并把它们扩展为一个更大的集合,有以下四种:

                         signed ; unsigned ; shortlong 

       注:signed (代表有符号)和 unsigned(代表无符号)。因为数据类型在计算机中以二进制存储,有符号的就会占去一个比特位来表示符号位。相应的取值范围也会变小。

一般上面的四种基本类型可以再使用一个或多个说明符进行修饰。详细的参考如下图示:

        (另外,在面试的时候面试官,如果问到,例如char一定是1个字节吗?一般会回到视机器而定,一般是一个字节)




 2.2 bool类型

      在bool类型成为C++标准之前,每个人都在用自己的方法实现类似于bool类型的行为。这种方式是很不利于可移植性的。

谈到bool,必须要谈到两个内建常量:true(转换为整数1) &  false(转换为整数0)。(注:内建常量暂不解释)

        此外一些语言元素也被采纳,在C++ 中:

    因为现在很多代码使用的是整型int表示一个标志,所以编译器隐式转换int为bool(非零值为true,零值为false)



2.3 枚举类型

    枚举(enumerated)类型就是指他的值为符号常量而不是字面值的类型,她们通常以下面形式声明:    

enumType{ CUP, PINT, QUART, HALF, GALLON };

    这条语句声明了一个类型,称为week。这种类型的变量按下面方式声明:

enumType CUP, PINT, QUART, HALF, GALLON ;

    这种变量的存储方式实际方式是整型的形式,第一个变量是0,第二个是1,以此往后(在不赋值的情况下)。当然在适当的是后,你可以选择赋值特定的整型值。

enumType{ CUP=1, PINT=5, QUART=3, HALF=11, GALLON };

    如上面,并没有对最后一个变量赋值,那么他的值就比前面一个大1,为12;



2.4 typedef

    C语言支持一种叫做typedef的机制(当然C++也是同样支持的啦,毕竟是继承了C的优良品性)。他允许你为各种数据类型定义新的名字。typedef声明的写法和普通的声明基本相同,只是吧typedef这个关键字出现在声明的前面。例如下面的这个声明:

char*ptr_char;

    把变量ptr_char声明能够为一个指向字符的指针,但是在你添加关键字typedef后,声明变为:

typedefchar*ptr_char;

    这种声明吧prr_char作为只想字符的指针类型的新名字(这里对指针可以不了解,毕竟还到后面才学的到)。你可以像使用任何个预定义名字一样,在下面申明中使用新名字。如下:

ptr_char a;

    声明了a指向字符的指针。

    注:typedef与#define还是有区别的,面试的时候可能会被问到。虽然都可以用来创建新的类型名。但是后者无法正确的处理指针类型。如下:

#defineptr_char char * ptr_char a,b;

    可以正确的使用a,但是b却被声明一个字符。所以通常定义复杂的类型时,选择typedef更为稳妥。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容