【黑马程序员】 我的C语言学习笔记(1)数据类型

黑马程序员——C语言基础教程笔记 黑马程序员——C语言基础教程笔记 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录黑马程序员——C语言基础教程笔记前言Day-11.C语言概论1.1 什么是C语言1.1.1 C语言特点1.1.2 学习C语言的理由1.1.3 发展方向1.1.4 C语言中的关键字2.3.Day-21.引入库2.读入数据总结 前言 研三了,作为一枚菜鸡硕,为了找工作,只好重刷C语言。以下笔记是我在“黑马程序员:http://yun. 阅读详情

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

程序离不开数据,程序归根结低是对数据的处理。C语言中的数据类型总得来说有两大系列:整数类型和浮点类型。而C语言中为了进行进一步的处理,基于这两大类又细分了多种数据类型。

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

1、整形

整形分为整形常量和整形变量,常量就是我们平时所看到的准确的数字,例如:1、20、333、、、等等,变量则按我的理解是我像内存去申请一个存储空间,告诉内存空间我申请了这个地方用来存放一个整形的数据,但是什么时候放并没有直接确定。在C语言中基本的整形变量标识符是int,在32位机器中一个int型数据使用32位也就是4个字节进行存储。例如:

<span style="font-size:14px;">
#include <stdio.h>
int main()
{
	int age;
	printf ("Please input a int number: ");
	scanf ("%d", &age);
	printf ("%d", age);
	return 0;
}
</span>
上述代码的运行结果截图为:


  如代码所示我们定义了一个int型的变量age,然后提示输入一个age值,再将age打印出来。我们从程序源头开始分析:我们需要一个整形的变量来存储我们的数据,所以我们使用语法: 数据类型  变量名 来定义了一个名为age的整形变量。而编辑器对于这句话的解读是我需要在内存的栈区开辟一个占用4个字节的存储区,这四个存储区将用来存储一个整形的数据。age这个变量名只是给我们看的,内存并不知道age是什么,内存只会记录分配的这4个字节的首地址。然后我们使用printf函数打印一串提示字符,紧接着我们使用scanf函数从键盘读取一个整形数据。关于scanf函数我们不作深入讨论,我们只关注%d和&age。%d是我们常说的格式说明符,为什么需要格式说明符,当我们告诉编译器我们需要读入一个数据时,编译器并不知道该以多少字节或以何种格式去存储这个值。所以我们使用格式说明符就是为了告诉编译器我们需要用存储整形的方式存储这个数据,这个数据占用4个字节的存储空间。而&age则是为了告诉编译器将数据存储在哪,&age得到的是age变量的4个存储空间的首地址,编译器在使用scanf读入数据12时将会把12存储到以&age指明的首地址在内的4个字节的存储空间里。而12在这四个字节中将会怎么存储呢,任何类型的数据在计算机的内存中都以2进制的形式进行存储。至于各种纷繁复杂的数据表现形式,整数、小数等等都只是我们读取的规则不同而已。12以4个字节也就是32位进行存储时应为:0000 0000 0000 0000 0000 0000 0000 1100,因为这里12为正数,所以最高位为0,若是-12其在内存中的存储形式为:1111 1111 1111 1111 1111 1111 1111 0011。而这种正负数的存储方式也是我们约定的一种规则而已,数据的千变万化归根结底还是我们在基础的二进制数据上的各种附加规则的作用结果。

 补充:在C语言中我们会看到unsigned、long、short,这是在C语言中为了扩充不同的需求而采用的类型修饰符,对于这些也不过是对于数据更加严格的限定而已。而对于这些限定,也必须有对应的格式说明符去告诉编译器该如何去读取数据,而究其本质与我们的测试程序并没有任何不同。


2、字符型

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

#include <stdio.h>
int main()
{
    char ch = 97;
    printf("%d %c\n", ch, ch); 
	return 0;
}
运行结果:



3、实型

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

3.1 单精度

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

3.2 双精度

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


如下代码:

#include <stdio.h>
int main()
{
    double d;
    float  f;
    scanf ("%f %lf", &f, &d);
    printf("f = %f, d = %lf\n", f, d); 
	return 0;
}
运行结果:






Python学习笔记1)---B站黑马程序员 文章目录Python基础一、Python介绍001-Python的起源002-为什么选择Python?003-Python 特点004-Python 的优缺点二、第一个Python 程序001-第一个HelloPython程序002- python 2.x 和 3.x版本介绍003-执行 Python程序的三种方式3.1 解释器 python / python33.2 交互式运行 python程序1)交互式运行 python的优缺点2)退出官方的解释器3)IPython3.3 Python 的 IDE —— 阅读详情

相关推荐

【C++】C++学习笔记基础语法

系统学习C++开发,需要用到的所有C语言知识,以及个人对难理解部分的学习总结,比如二维数组的指针调用等。

qq_48419442的博客 1149

黑马C语言听课笔记

主要是C语言基础和C语言提高的一些文档,都是我根据视频中的内容记载的,包括例子和代码

2020黑马C语言基础课堂笔记 - day01.pdf

正在学习C语言,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,这是我总结的C语言基础班第一天课程

《C语言基础学习笔记》—— 黑马程序员 <Part1-4>

《C语言基础》—黑马程序员,自学笔记。 更多视频及教程请参考:https://space.bilibili.com/37974444?spm_id_from=333.788.b_765f7570696e666f.1

qq_39764867的博客 7076

c语言笔记——黑马程序员上课笔记

C语言概述 1.1 什么是C语言 一提到语言这个词语,自然会想到的是像英语、汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具。 而今天计算机遍布了我们生活的每一个角落,除了人和人的相互交流之外,我们必须和计算机角落。 用什么的什么样的方式和计算机做最直接的交流呢?人们自然想到的是最古老也最方便的方式——语言,而C语言就是人和计算机交流的一种语言语言是用来交流沟通的。有一方说,有另一方听,必须有两方参与,这是语言最重要的功能:  说的一方传递信息,听的一方接收信息;  说的一方下达指令,.

qq_2662385590的博客 2489

笔记——C语言基础讲义(黑马程序员

在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来——称为数组。数组就是在内存中连续的相同类型的变量空间。同一个数组所有的成员都是相同的数据类型,同时所有的成员在内存中的地址是连续的。数组属于构造数据类型: 一个数组可以分解为多个数组元素:这些数组元素可以是基本数据类型或构造类型。int a[10]; 按数组元素类型的不同,数组可分为:数值数组、字符数组、指针数组、结构数组等类别。int a[10];char s[10];

qq_44939870的博客 4492

C语言 黑马程序员网课:我的学习心得与笔记(更新中)

1.1 环境搭建 1.2 第一个程序HelloWorld(vs) 1.3 Hello World代码分析 1.4 流程执行分析

2404_82622750的博客 212

黑马程序员C++》课程笔记总结

我的小站——半生瓜のblog 黑马程序员C++视频——黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难 笔记列表&对应视频 基础部分(1-83)——如果你准备学习C++,并且有C语言的基础,我希望你能简单的过一遍知识点。 核心部分(84-146)——C++核心编程部分-内存分区模型-引用-函数提高-类与对象-文件操作 案例1(147-166)——职工管理系统——C++实现职工管理系统 进阶部分(167-263)——C++提高编程部分-泛型编程-STL 案例2(264-281)—.

半生瓜のblog 19万+

黑马程序员C++从0到1笔记教程-PDF带目录

黑马程序员C++从0到1笔记教程-PDF带目录 【下载地址】黑马程序员C从0到1笔记教程-PDF带目录 黑马程序员C++从0到1笔记教程是专为C++初学者设计的全面学习指南,涵盖从基础语法到高级编程的七个阶段,每个阶段均配有详细的理论讲解和实战案例。教程从变量、数据类型等基础知识入手,逐步深入面向对象编程、模板、异常处理...

gitblog_06797的博客 1277

黑马程序员C语言入门笔记

黑马程序员C语言入门笔记》 去发现同类优质开源项目:https://gitcode.com/ 《黑马程序员C语言入门笔记》是一份专为C语言初学者准备的全面笔记资料。它深入浅出地讲解了C语言的基础知识,帮助初学者系统地掌握C语言的编程技巧。 此笔记资料针对所有初学C语言的人员,无论您是编程小白,还是已有一定基础的朋友,都能从中受益。对于那些有编程基础的朋友来说,这份笔记是一个宝贵的助手,可以帮助您...

gitblog_06703的博客 550

黑马程序员C语言入门笔记

针对所有初学C++的人员的一个最全面的笔记,对于有过基础的朋友来说又是一个更好的助手. 省去了你自己去总结的时间,有更多的时间去敲代码. ------------黑马程序员学员-------------------

【C++】黑马程序员-C++基础语法学习笔记

根据黑马程序员C++课程内容,结合讲义,将自己学习C++的过程中将自己觉得有必要记下的笔记进行整理,方便复习回顾,编程环境为VSCode。编写代码: 运行程序:作用: 在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码两种格式通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明 多行注释: /* 描述信息 */ 通常放在一段代码的上方,对该段代码做整体说明 多行注释快捷键: ①注释/取消:Ctrl+Shift+/ ②注释:Ctrl+K+C ③取消注释:Ctrl+K+U作用:给一段指定的内

qq_62361050的博客 1771

黑马程序员 · 模电课程笔记

这篇是我个人做的黑马程序员模电课程笔记

2201_76102764的博客 1350

黑马程序员C++笔记

黑马程序员C++笔记

m0_62076827的博客 5394

黑马程序员匠心之作 || C++基础编程笔记

所谓数组,就是一个集合,里面存放了相同类型的数据元素特点1:数组中的每个数据元素都是相同的数据类型特点2:数组是由连续的内存位置组成的数据类型 数组名[ 数组长度 ];数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};数据类型 数组名[ ] = { 值1,值2 ...};示例int main()//定义方式1//数据类型 数组名[元素个数];//利用下标赋值//利用下标输出//第二种定义方式//数据类型 数组名[元素个数] = {值1,值2 ,值3 ...}

强哥的微博 3240

C语言学习笔记数据类型

虽然是为了计算机二级准备,但是也对stm32的编程有用的。 这是第一部分,常见的数据类型

qq_60043905的博客 245

黑马程序员Java笔记

输出打印、参与运算、修改记录的值。

m0_68735537的博客 4409

C语言学习之路(黑马)

C语言学习之路---师承黑马

理想主义的花终将盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 1447
下一篇: 【黑马程序员】C语言学习笔记(2) - 指针
Little__Coder
博客等级 码龄11年 1粉丝 6原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值