C语言基础第一章:基本数据类型

C语言 专栏收录该内容
7 篇文章 0 订阅

整体思维导图

在这里插入图片描述

1.基本数据类型

在这里插入图片描述

1.1.整型

1、整型内部结构原理
定义一个int 2,也就是系统自动申请4个字节的内存来存储这个2,对于32位而言,整型的取值范围就是0 ~ 2^31-1(正数),无符号整型原理如下图所示:
在这里插入图片描述
负数同理可知,它的取值范围是-2^31-1 ~ 2^31-1,但是负数的存储过程是补码,也就是取反再+1,如下图所示:
在这里插入图片描述
代码如下:
在这里插入图片描述

1.2.字符

字符其实就是用来存放整型的,比如字符‘A’其实就是ASCII 65,也就是存放ASCII,代码如下
在这里插入图片描述

1.3.浮点型

Float,直接上代码
在这里插入图片描述

1.4.布尔型

在这里插入图片描述

1.5.可移植性数据类型

比如在两个不同平台当中,int一个平台代表2字节,另一个平台int代表4字节,那么就可以通过我们的关键字typdef来定义,相当于就多了一个中间层
在这里插入图片描述
上图所示,int32_t就是我们的中间层,通过定义int32_t j;在A平台则代表定义的是long j,在B平台代表int j;他们都是4个字节,这就是跨平台的可移植性。如果就单纯的定义一个int i;则不具备可移植性

1.6.字符串

(1)字符数组

字符串其实就是字符数组,比如一个字符串是”abc”,那么它的内部原理如下图所示,也就是占4个字节,因为有个结束标志‘\0’,如果是空的也会占一个字节,也就是‘\0’。
常用的字符串也就是一维数组,比如char str[] = “abc”;
在这里插入图片描述

(2)字符指针

指针就是用来指向数组的首地址,如下图所示,定义了一个char *p,p就是指向数组的首地址,也就是‘a’的地址,假设’a’的地址为0x123,那么P就是0x123。如果p=“abc”+1,那么p就是地址+1,也就是指向了‘b’,也就是0x124
在这里插入图片描述

2 printf和scanf的使用

2.1.printf四种用法:

1.printf("字符串");
2.printf("输出控制符\n",输出参数);
3.printf("输出控制符1 输出控制符2...",输出参数1,输出参数2...);
4.printf("输出非控制符 输出控制符1",输出参数);

scanf用法:
scanf不要用\n,如果是数组或字符,不用取地址符

2.2.关于printf输出缓存问题:

有\n会马上输出
结束时会马上打印
输出缓冲区满时
有输入请求时,即scanf,也会立即打印到屏幕上

2.3.scanf

Scanf是获取用户输入,比如需要从键盘输入100,那么最先获取到这个数据的是内核的键盘驱动,然后内核再将数据给到user的标准IO缓冲区中,最后才是scanf来获取数据。
在这里插入图片描述
scanf比较挑剔,定义什么类型的数据就获取什么类型的数据,而getchar是每次只拿一个数据,不管是什么数据类型。
代码如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

C语言接口与实现创建可重用软件的技术》,原名《C Interfaces and Implementations:Techniques for Creating Reusable Software》,作者【美】David R.Hanson,翻译傅蓉 周鹏 张昆琪 权威,出版社机械工业出版社,ISBN7111130057,PDF 格式,大小 10MB。 内容简介 本书概念清晰、内容新颖、实例详尽,是一本有关设计、实现和有效使用c语言库函数,掌握创建可重用c语言软件模块技术的参考指南。本书倡导基于接口的c语言设计理念及其实现技术,深入详细地描述了24个c语言接口及其实现。    本书通过叙述如何用一种与语言无关的方法将接口的设计与实现独立开来,从而形成一种基于接口的设计途径来创建可重用的api,本书是一本针对 c语言程序员的不可多得的好书,也是值得所有希望掌握可重用软件模块技术的读者阅读的参考书籍。    关于如何设计、实现和有效使用库函数的指南少之又少(如果说还有的话)。这本力作填补了这 个空白。它可以作为下一代软件的工具书.所有的c语言程序员都应该阅读。    ——w.richard stevens    “我向每位专业c语言程序员推荐这本书。c语言程序员们忽视书中所描述的各种技术已经太长时 间了。”    ——norman ramsey,贝尔实验室研究员 每一位程序员和软件项目经理必须掌握创建可重用软件模块的技术可重用软件模块是 构建大规模、可靠应用的基石。与当前某些面向对象语言不同,c语言为创建可重用应用程 序接口(application programming interface,api)提供的语言和功能支持非常少。尽管大多 数c语言程序员在自己所编写的每一个应用程序中都使用api和实现api的库.但只有相当少 的程序员可以创建和发布新的、可广泛使用的api。本书阐述了如何用一种与语言无关的方 法将接口的设计与实现独立开来,从而形成一种基于接口的设计途径来创建可重用的api。 书中提供大量实例具体说明这种方法。作者详细描述了24个接口和它们的实现细节,有助于 读者对这种设计方法的透彻理解。 本书具有如下特色 简洁明了的接口描述。为对接口设计感兴趣的程序员提供了一个参考手册 每一章接口的代码实现分析将帮助读者修改、扩充一个接口,或者设计相关接口 深入探讨了“算法工程”阐述如何将数据结构以及相关算法打包到可重用模块中 24个api和8个实例程序的源代码都经过测试检查,每个程序都是按照”literate程序”的形 式构成。为源代码提供了全面完整的解释 提供了非常少见的有关c语言编程技巧的文档记录 可以方便地在http://www.cs.princeton.edu/software/cii/访问本书的所有源码 目录 出版者的话 专家指导委员会 译者序 前言 第1章 简介 1 1.1 literate程序 2 1.2 编程风格 6 1.3 效率 7 参考书目浅析 9 练习 9 第2章 接口与实现 11 2.1 接口 11 2.2 实现 13 2.3 抽象数据类型 15 2.4 客户调用程序的责任 17 2.5 效率 21 参考书目浅析 21 练习 22 第3章 原子 25 3.1 接口 25 .3.2 实现 26 参考书目浅析 31 练习 31 第4章 异常与断言 33 4.1 接口 34 4.2 实现 38 4.3 断言 43 参考书目浅析 46 练习 46 第5章 内存管理 49 5.1 接口 50 5.2 产品级实现 53 5.3 校验实现 55 参考书目浅析 62 练习 62 第6章 进一步内存管理 65 6.1 接口 65 6.2 实现 67 参考书目浅析 72 练习 73 第7章 链表 75 7.1 接口 75 7.2 实现 78 参考书目浅析 83 练习 83 第8章 表格 85 8.1 接口 85 8.2 例子单词频率 87 8.3 实现 92 参考书目浅析 98 练习 98 第9章 集合 101 9.1 接口 101 9.2 实例交叉引用列表 103 9.3 实现 109 9.3.1 成员操作 110 9.3.2 集合操作 113 参考书目浅析 116 练习 116 第10章 动态数组 119 10.1 接口 119 10.2 实现 122 参考书目浅析 124 练习 125 第11章 序列 127 11.1 接口 127 11.2 实现 128 参考书目浅析 133 练习 133 第12章 环 135 12.1 接口 135 12.2 实现 1
相关推荐
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值