【初识C语言】C语言基本数据类型

C语言基本数据类型简介

1.概述

 C 语言包含的数据类型如下图所示:

C语言中的基本数据类型有整形、字符型、浮点型:单精度型、双精度型;枚举类型、数组等。

1、整形

整形分为整形常量和整形变量,常量就是我们平时所看到的准确的数字,例如:1、20、333、、、等等,变量则按我的理解是我像内存去申请一个存储空间,告诉内存空间我申请了这个地方用来存放一个整形的数据,但是什么时候放并没有直接确定。一般占4个字节(32位),最高位代表符号,0表示正数,1表示负数,取值范围是-2147483648~2147483647,在内存中的存储顺序是地位在前、高位在后,例如0x12345678在内存中的存储如下。

定义:用int关键字,举例如下:

在C语言中基本的整形变量标识符是int,在32位机器中一个int型数据使用32位也就是4个字节进行存储。

2、字符型

字符型在其本质上就是整形,我们在C语言中使用char表示一个字符型,他占用一个字符的存储空间,字符型在存储时其内部存储的依旧是二进制数据,当我们读出时将会得到一个整形数据,而我们输出时会得到一个字符是因为我们人为的定义了一个对照表,这个表规定字符a的数值就是97,所以当我们遇到97时我们有两种读出方式,第一种以整数形式读出就是97,另一种就是以字符型读出,使用%c指定读出形式,则对照表则为a。

3、浮点型

除了整形还有另一类很重要的基本数据类型,那就是实型。我们在学习数学时不仅使用整数,更多的时候则是使用小数,那么浮点数在内存中饭的存储与整数在内存中的存储有什么不一样的地方吗?其实,单从数据存储上看,都是2进制并没有任何不同,但不同的是我们加在其上的表示规则与读取规则。无论单精度还是双精度的浮点数在内存中我们对于一个浮点数都分为三个部分:

1、符号位:0代表正 1代表负;

2、指数位:用于存储科学技术法中的指数; 

3、尾数位:存储尾数部分

3.1 单精度

float:系统的基本浮点类型。至少能精确表示6位有效数字。

我们在C语言中使用一个float类型表示一个单精度的浮点类型,一个float类型占用4个字节的存储位,其中最高位为符号位,紧接着8位为指数位,剩下的23位为尾数位,我们使用%f作为其格式说明符,而且float一般精确到小数位后6位,即保证6位有效。

3.2 双精度

double:范围(可能)更大的浮点类型。能表示比float类型更多的有效数字以及更大的指数。 

long double:范围(可能)更大的浮点类型。能表示比double类型更多的有效数字以及更大的指数。

我们在C语言中使用一个double类型表示一个双精度的浮点类型,一个double类型占用8个字节的存储位, 最高位为符号位,紧接着8位为指数位,剩下的52位为尾数位,我们使用%lf作为其格式说明符,而且double类型一般精确到小数位后12位,即保证12位有效。

4 指针

指针?什么是指针?从根本上看,指针是一个值为内存地址的变量(或数据对象)。正如char类型变量的值是字符,int类型的变量的值是整数,指针变量的值地址。在C语言中,指针有许多用法。

假设一个指针变量名是ptr,可以编写如下语句:

对于这条语句,我们就可以说ptr“指向”pooh。ptr和&pooh的区别是ptr是变量,而&pooh是常量。或者,ptr是可修改的左值,而&pooh是右值。还可以把ptr指向别处:

ptr = &bah; //把ptr指向bah,而不是pooh

现在ptr的值是bah的地址。

要创建指针变量,先要声明指针变量的类型。

5 数组

数组是按照顺序存储的一系列类型相同的值,如10个char类型的字符或15个int类型的值。整个数组有一个数组名,通过整数下标访问数组中单独的项或元素。例如:以下声明:

float debts[20];

声明debts是一个内容20个元素的数组,每个元素都可以存储float类型的值。数组的第一个元素是debts[0],第2个元素是debts[1],以此类推,直到debts[19]。注意,数组元素的编号从0开始,不是从1开始。可以给每个元素赋float类型的值。例如,可以这样写:

debts[5] = 32.54;

debts[6] = 1.2e + 21;

实际上,使用数组元素和使用同类型的变量一样。例如,可以这样把值读入指定的元素中:

scanf("%f",&debts[4]);//把一个值读入数组的第5个元素

这里要注意一个潜在的陷阱:考虑到影响执行的速度,C编译器不会检查数组的下标是否正确。下面的代码,其实都不正确:

debts[20] = 88.32;//该数组元素不存在!

debts[33] = 828.12;//该数组元素不存在!

编译器不会查找这样的错误。当运行程序时,这会导致数据被放置在已被其他数据占用的地方,可能会破坏程序的结果甚至导致程序异常中断。

6 复数和虚数类型(因为用的不多,所以这里几乎省略)

注意: 

char类型肯定是1字节,因为C把char类型的长度定义为1个字节。所以在char类型长为16位,double类型长为64位的系统中,sizeof将报告double类型有4字节长。

好了,简单的数据类型介绍我们就到这里了,希望能帮助大家理解、入门。笔记只是辅助,更多的还是需要大家跟着徐老湿一起学习,互动交流。最后预祝小伙伴们学业有成!


老九学堂出品,转载请私信哦

对于文章内容有不理解的可以添加老九君个人QQ:614940318,请备注来自简书

老九学堂免费C、C++、Java课程地址:

https://study.163.com/courses-search?keyword=%E8%80%81%E4%B9%9D%E5%AD%A6%E5%A0%82

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

推荐阅读更多精彩内容