| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 【C语言】你真的懂基本数据类型吗? -> 正文阅读 |
|
[C++知识库]【C语言】你真的懂基本数据类型吗? |
UFC冠军奥利维拉的传奇:生在贫民窟,父亲被枪杀,被诊断坐轮椅 来自贫民窟的冠军布朗克斯之子-奥利维拉 永不放弃 目录 1、什么是数据类型?数据类型在我们日常生活中就是表示每一类数据的标识,我们通过大脑来存储这些数据标识,那么在计算机中我们认为数据类型就是计算机表示数据的一个属性,我们程序员通过编译器和解释器向计算机表示我要进行的数据类型操作。当然这些数据存储在计算机当中。下面我就来讲解C语言中数据的不同类型以及它们所占的存储空间、怎样定义一个常量、常量的命名规范...... 1.1数据类型的分类🤼那么在C语言中数据类型分为四种:?
1.2基本数据类型有哪些?C语言中基本数据类型有整数类型和浮点类型,他们都是算术类型。分别为: char(%c)- 字符型:可以是大小写字母(例'a'、'A'),数字(例'1'),转义字符(例'\t')等,它在16位编译器、32位编译器、64位编译器中都占1个字节; short(%d)- 短整型:可以是小型数字取值较短,它在16位编译器、32位编译器、64位编译器中都占2个字节; int(%d)- 整形:可以是中长度的一个数字取值比,正常我们定义一个整形变量就用int,它在16位编译器占2个字节、32位编译器占4个字节、64位编译器占4个字节; long(%ld)- 长整型:当我们要求的数字较大超出了正常范围,我们可以用long来定义,它在16位编译器、32位编译器都占4个字节、64位编译器中占8个字节; long long(%lld)- 更长的长整型:当数字太大了,已经数不过来了,我们可以用long long,它在16位编译器、32位编译器、64位编译器中都占8个字节 ; float(%f)- 单精度浮点型:我们一般都用float来表示小数,如6.6,6.66这种小数位数少的,它在16位编译器、32位编译器、64位编译器中都占4个字节; double(%lf)- 双精度浮点型:当小数位数过大,如6.666699897我们就用双精度来表示,它在16位编译器、32位编译器、64位编译器中都占8个字节; long double(%llf)- 更高精度的浮点型:long double是C99中新增的数据类型。ANSIC标准规定了double类型为64 位(8 个字节)浮点数, 但未规定long double类型的位数,只规定了long double的精度不少于double的精度。它的不同的系统位占的字节也不同
那么我们想要得到某个类型的存储大小,我们可以使用sizeof运算符,表达式sizeof(数据类型)来得到该类型或对象在存储占用多少字节数,🤼?♀?下图所示:
1.3整型整形家族:char - 字符数据类型、short? - 短整型、int? - 整形、long - 长整型、long long? - 更长的整形
🤼有一程序,定义一个数,分别输出它的八进制数、十进制数、十六进制数:
1.4浮点型浮点型家族:float - 单精度浮点型字符、double - 双精度浮点型字符
?那么如何得到单精度与双精度所占字节以及取值范围呢?步骤如下图所示:
🤼?♀? 以下为输出结果,可以上面代码深入了解一下:
2、变量与常量基本数据类型分为常量与变量 2.1、变量与常量是什么?在日常生活中,一个人的姓名、身份证号码、性别、血型。我们理解为这个人的不变的量,这里也就是常量。那么这个人的年龄、体重、相貌、工资。我们理解为这个的可变的量,这里也就是变量。那么理解上述两段话后,我们就不难理解C语言中常量与变量是怎么个回事了。
2.2、怎样定义一个常量🤼定义一个常量
🤼?♀?定义一堆常量 🤼直接上代码:?
??结果如下 2.3、变量的命名规范
3、变量的分类🤼变量分为局部变量与全局变量局部变量与全局变量之前,我们必须了解到作用域和生命周期这两个概念。 🤼?♀?作用域,作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。
🥊生命周期,变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
3.1、局部变量局部变量我们理解为括号{}内定义的变量,局部变量的作用域是变量所在的局部范围局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。我们看代码:
这就是一个简单的局部变量,当然我们可以再通过赋值、scanf输入来改变这个变量。?
那么我们把printf语句放在第二个{}外面,上个程序与下个程序有什么不同呢??
会显示未定义标识符a?
? 3.2、全局变量全局变量我们理解为括号{}外定义的变量,全局变量的作用域是整个工程。局变量的生命周期是:整个程序的生命周期。
结果:a = 10 那么这就是一个简单的定义全局变量程序,我们刚开始学习就应该以理解为主,在后来的学习中,我们的难度才会慢慢增长。不要站架没学会就想着怎么出拳,一步一步来。 ?🤼下面我们来看一个程序:
可能有些小伙伴看了这个,就有些疑惑了,诶你不是定义a=2021了吗,为啥输出结果为2023呢?诸位注意,我定义的a=2021是在{}前面定义的,我们成这个为全局变量,而{}内定义的a=2023是一个全局变量。所以我们认为局部变量与全局变量名冲突时,我们优先输出局部变量。这就是为什么上述结果为2023。
4、常量的使用4.1、常量分类C语言中常量与变量的命名是有着极大的不同的,上面我们说过常量是不可改变的量,那么设置它的时候自然有着不同之处。C语言中的常量有以下几种:
4.2、#define宏定义#define是什么? #define命令是C语言中的一个宏定义命令,它用来讲一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。该命令有两种格式:一种是简单的宏定义(不带参数的宏定义),另一种是带参数的宏定义。 #define是一个宏定义,它定义一个文本给这个文本赋不变的值,我们可以在main函数里面通过这个文本调用这个文本所赋给的值。这个值是不变的,所以我们称为常量。 🤼以下有一程序输入圆的半径求圆的面积:
?🤼?♀?结果为:
大家思考一下上述宏定义,只是定义一个值。如果定义一个算术类型呢?例如#define N 3+2,那么这个定义是否可以呢?例:有一矩形已知一边长宏定义为10,另一边长为5,并求出它的面积,我们来看代码:
为什么会这样呢,在编译时我们预想s=10*5,实际打印结果是34原因是在预处理阶段,编译器将 s=10*5?处理成 s=4+6*5,这就是?define?宏的边缘效应,所以我们应该写成?#define N (2+3)。
🤼?♀?当然你也可以#define多个命名,直接看代码
?上述程序我们可以看到宏定义可以定义转义字符'\n'换行
?4.3、const修饰的常变量const是一个关键字,那么const修饰的为什么可以是一个常量,也可以是一个变量呢?下面我就来讲解。首先,我们要知道定义一个const修饰的常量的格式:const int a =20 ;1、const-关键字2、int-数据类型3、a-变量名4、20-变量值5、;-结束符 🤼当const修饰一个常量时,这个常量的值是不可更改的:
🤼?♀?当const修饰一个指针变量时,这个指针变量可以通过指向不同的地址来改变:
当把 const 放最前面的时候,它修饰的就是 *p,那么 *p 就不可变。*p 表示的是指针变量 p 所指向的内存单元里面的内容,此时这个内容不可变。其他的都可变,如 p 中存放的是指向的内存单元的地址,这个地址可变,即 p 的指向可变。但指向谁,谁的内容就不可变。
4.4、枚举常量上面我们已经见过const字符常量、还有宏常量了但是如果想要定义一组有意义的数字,这一组的数字都有“排比”一样的规律我们可以定义为枚举常量。 🤼直接看代码:
?那么括号中的shuxue,yingyu,wuli都枚举常量。那么枚举常量只能是int类型的,且声明和赋值整数,平常在排列时用的较多。至于他的用法以后我会在后面几期文章内提到,我们暂时只用知道什么是枚举常量。
那么本期文章就到这里了,如有问题请指出,万分感谢!!! 永不放弃? Never Give Up? |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 12:40:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |