承接上集,我们学习了第一个C语言程序。接下来我们来学习数据类型!

首先,小C来介绍一些数据类型,他们分别是:

1.char__________________________ 字符数据类型

2.short (int)______________________  短整型

3.int ___________________________  整型

4.long (int) ______________________ 长整型

5.long long______________________ 更长的整型

6.float__________________________ 单精度浮点型

7.double________________________ 双精度浮点型

在C++里面有字符串类型,那么C语言里有没有呢?

答案是没有的!!!

那为什么会有如此多的类型呢?

这首先得从数据变量在内存的存储原理开始说起!

在定义变量的时候,我们会选择不同的数据类型来定义这个变量,然后再以这个数据类型在内存空间中开辟空间,这个开辟空间的大小就是数据类型的大小。因为我们所需要的变量空间的大小不一样,因此为了提高内存的利用率就有必要设置这么多空间大小不一的数据类型以供我们使用。

比如说:当我们想要创建年龄的变量时,我们通常都会用int类型来定义年龄

但是,我们都知道年龄不会超过4位数,因此,在对年龄进行选择数据类型时,就没有必要选占内存空间过大的数据类型。因为一个整型是4个字节,一个字节8个bit位。那么一个整型就可以表示2^32个十进制整数,因此,定义年龄可以用short类型。

那么,这些数据类型的大小到底是多少呢?

通过Visual studio进行调试之后,我们不难发现:

在控制台上出现了一串数字这些数字表示的是这些数据类型的大小,且他们的单位是字节。

此时,小谢同学深感疑惑,什么是字节呢?还有为什么int和long的数据类型的空间大小是一样的?

那么这就得从计算机原理说起了。我们都知道计算机是一种电气设备,也可以理解为是一种大型的电路。那么在电路中总是有电流流过。他们通常有两种情况,其分别是有电流流过(true)没电流流过(false)。那么此时,我们用10来代表其有电流通过(true)没电流通过(false),此时我们将这两种状态存起来,此时存储1或0的单位被称为bit位。bit位是计算机中最小的储存的单位。之后8个bit位就构成了一个字节。然后的然后,还请客官往下看

为什么int和long的数据类型的空间大小是一样的?

int类型的空间大小<=long类型的空间大小。

有的编译器中,long的空间大小是8 byte,有的是4 byte。

在printf("%d\n",sizeof(char));在语句中,有一个操作符(运算符)是sizeof,他是用来计算变量或类型的大小,其单位为字节!这个运算符可以用于任何数据类型,这个操作符只关注空间的大小,并不会在乎数组内部是否有"\0"。("\0"的介绍在下面)那么,这时我要说一个函数和他进行区分,他们两个真的太像了。十分容易混淆。小谢同学就在这里栽过跟头。他就是————strlen。

strlen被包含在string的头文件中,他的功能是用来计算字符串的长度的(注意:这个函数只能计算字符串的长度)他关注字符串中是否有“\0”,他只计算“\0”前面的字符串长度!

关于“\0”的意义

"\0"是字符串的结束标志,在计算字符串的长度时,遇到"\0"就终止计算且"\0"不算做字符串的内容。

上述红粗体就是这两个的区别,下面就是关于sizeof与strlen的代码演示:

按下F10按钮即可进行调试

在监视窗口输入自己想要看到的变量或数组即可进行监视!

在上述的三张图中,图1与监视2,我们可以看见sizeof大小与数组中的元素个数有关,也就是数组的空间大小有关。

而这个strlen在图一中,arr2[]是3个,而arr1[]是11个,这是为什么呢?

这是因为arr2[]隐藏了一个”\0“,因此字符串长度为3。而arr1[]中的字符的个数为3。

为什么strlen中的个数为11呢?

这是因为strlen在计算arr1[]时发现'g'后面没有紧跟着“\0”,而是其他字符,这些字符是电脑随机给的(我也母鸡是什么字符),strlen对arr1[]的计算直至遇到“\0”才会停止计算。因此,这个字符串长度是一个随机值!(详细的在后面会讲)

此时,小谢同学有疑问关于单精度浮点型和算精度浮点型又有什么区别呢?

double类型的精度比float类型要高!

在使用float类型给变量赋值时,在数值后面最好加上f,以防编译器默认该数据类型为double型。

同时,在计算含有小数的计算式时,应该用float(或double)变量来对计算值进行接收(如果想得出整数可以用int的数据类型),除此之外,表达式中至少含有一个小数,不然会先按整型计算之后再将计算出来的结果变成float型(或double型)。如图所示:

 关于这些数据类型的使用格式:

类型+变量名

记住:定义完变量名一定要记得初始化!!!

(这是编程的好习惯!!!)

好啦!数据类型搞完啦!如有错误,一定要告诉小谢同学!!!

谢谢大家啦^-^!

小谢同学的C语言之路————第一章 初遇C语言 第二集 数据类型相关推荐

  1. Flash ActionScript3 殿堂之路 第一章:ActionScript3语言介绍与开发环境

    本章简略介绍ActionScript3语言的历史.新增特色和开发工具,并讲解了各种开发环境设置,以及第一个ActionScript3程序. 本章导读 对于ActionScript3初学者,本章将带你了 ...

  2. C语言程序教程第一章答案,C语言教程课后习题答案

    C语言程序设计教程 电子科技大学出版社 主编:周鸣争 第一章 C语言概述 一.简答题 1.(1)语言简洁.紧凑,使用方便.灵活:(2)运算符丰富:(3)具有丰富的数据类型: (4)具有结构化的控制语句 ...

  3. c生万物【第一章 初识c语言】

    c生万物---第一章 初识c语言 前言 1.什么是C语言 2.第一个C语言程序 3.数据类型 4.变量.常量 4.1定义变量的方法 4.2变量的分类 4.3变量的使用 4.4 变量的作用域和生命周期 ...

  4. 用c语言运行程序的优点,C语言学习与总结---第一章:C语言概述

    第一章:C语言概述 1.绪论 2.计算机程序 3.计算机语言 4.C语言的发展及其特点 5.最简单的C语言程序 6.运行C语言程序的方法与步骤 7.程序设计任务 1.绪论 C语言是计算机基础语言,本次 ...

  5. 数据结构c语言版第一章答案,《c语言数据结构》第一章概论自测题答案

    <<c语言数据结构>第一章概论自测题答案>由会员分享,可在线阅读,更多相关<<c语言数据结构>第一章概论自测题答案(4页珍藏版)>请在人人文库网上搜索. ...

  6. 计算机网络(谢希仁第八版)第一章:概述

    1.计算机网络在信息时代的作用 三网:电信网络,有线电视网络,计算机网络. 三网融合:由于涉及多方面的利益和行政管辖权的问题,目前没有实现. Internet(译名:因特网,目前使用最广泛的译名为:互 ...

  7. 《java学习之路》第一章:初识java第二节:helloworld

    嗨大家好,我是埪动白,前一段时间由于一些原因,java学习之路停更了,我向大家道歉.今天我们来学习下一节 第一章:初识java 第二节:hello world 如果哪位同学没有看第一节,建议先看一下, ...

  8. 李艺《微信小程序全栈开发实战》(第一章)

    李艺<微信小程序全栈开发实战>(第一章) 双线程运行机制 小程序的特点及开发能力 小程序的特点 小程序的开发能力 开发小程序的一般流程 小程序的运行机制 小程序双线程 视图的持续更新是如何 ...

  9. c语言第一章,C语言修正版第一章

    <C语言修正版第一章>由会员分享,可在线阅读,更多相关<C语言修正版第一章(28页珍藏版)>请在人人文库网上搜索. 1.C,语言,重要性,结构化编程语言,语言的入门课,基础课, ...

最新文章

  1. Docker(三):Dockerfile 命令详解
  2. 中国钢铁行业产量规模与十四五建设动态分析报告2022-2027年
  3. 从直觉主义到量化分析 让大数据做主
  4. php 常用设计模式demo
  5. SpringCloud配置中心内容加密
  6. 國慶和中秋的學習成果
  7. 自动化运维之ansible-安装部署与基础命令篇
  8. SynchronizedMap和ConcurrentHashMap 区别
  9. 阿里前 vs 来阿里后,阿里人的真实写照!
  10. 【android】网络定位服务NetworkLocationProvider
  11. Elasticsearch分布式架构原理图
  12. 迅雷高速通道无限使用破解教程
  13. 传说中开场晕过去一千多人的迈克杰克逊演唱会,有生之年请看下这个视频
  14. android-player 本地服务器联调
  15. C#项目解决方案管理器中将*.Designer.cs文件放到*.cs文件下
  16. 手机 download .cu .log_手机清理内存,这些英文文件哪些是可以删除的?看完就知道...
  17. win7 64蓝牙耳机连接问题
  18. 微软官方制作纯净版的U盘启动盘(详细步骤)
  19. Linkage Mapper 之 Barrier Mapper 功能解析(含实际案例分析)
  20. BZOJ1415【NOI2005】聪聪和可可

热门文章

  1. 浙江大学11个A+学科,农业就占了6个,太强大了。
  2. 13种老人不适合带孩子_让老人带娃却遭怒摔!细数13种不适合带孩子的老人!...
  3. 面对疫情,健身俱乐部管理者最应该做的6件事
  4. git仓库中文件较多,如何拉取指定文件到本地
  5. 数据库(二)—— 关系模型概述
  6. 机械/电信/生物/化学专业出身,为啥都要转行计算机?
  7. Tableau地图/分组数据集联系
  8. adb命令 激活并设置默认输入法
  9. 学校创客教育实施方案
  10. 科研,办公几款强大又实用的软件(含安装包)