C语言_第二讲_规范以及常用数据类型

一丶编码规范基本数据类型

编码规范

任何程序员,都应该有良好的的编码习惯,便于以后的代码可读性和维护

常见了编码规范有

匈牙利命名法

驼峰式大小写

匈牙利命名法:

是电脑程序设计中的一种变量命名规则,此命名法又可细分为:系统匈牙利命名法匈牙利应用命名法

匈牙利命名法具备语言独立的特性,并且首次在BCPL语言中被大量使用。由于BCPL只有机器字这一种数据类型,因此这种语言本身无法帮助程序员来记住变量的类型。匈牙利命名法通过明确每个变量的数据类型来解决这个问题。

在匈牙利命名法中,一个变量名由一个或多个小写字母开始,这些字母有助于记忆变量的类型和用途,紧跟着的就是程序员选择的任何名称。这个后半部分的首字母可以大写,以区别前面的类型指示字母(参见驼峰式大小写)。

例如: i_de f_fd db_d ch_c   第一个给定的信息可以很明确的直到是什么类型的.

便于代码的可读性

驼峰式大小写:

驼峰式大小写Camel-CaseCamel Casecamel case),电脑程序编写时的一套命名规则(惯例)。

变量名和函数名称是由二个或多个单字链接在一起,而构成的唯一识别字时,利用“驼峰式大小写”来表示,可以增加变量和函数的可读性。

例如: AddSum()    SubValue BinarraySerach()   由此可以看出每个函数的作用

例如第一个 加一个数的总数  第二个减去值  第三个二进制数组查找.

拿到一个编辑器的时候

第一步:

讲他的Tab键设置为空格键替换,这样可以保证在任何平台下的代码都是一样看.

第二步:

编写代码的时候每句代码如果依赖上一层代码的关系,需要在首行加上缩进.

第三步:

讲编辑器设置线,可以保证代码不要超过,这样有助于代码的可读性

第四步:

编写源代码的时候上边要加注释 注释要求是:

要求(可以是项目要求,功能要求,做什么的说出来)

时间(你修改后的时间)

姓名(你什么时候修改的,加上时间,加上自己的姓名)

二丶Scanf函数的常见用法

Scanf(%d,%d,&a,&b);

对于scanf函数来说,在扫描输入的时候,你加什么,输入的分隔符号就要是什么

一般scanf默认都是空格或者回车是分隔符的.

Scanf函数中可以放正则表达式

常见的正则表达式有:

Scanf(%[0-9]d,&a);代表只能输入0-9,不对的不会输出

Scanf(%a-z]d,&a);代表只能输入a-z,不对的不会输出

Scanf(%[^5]d,&a);代表不能输入五,输入五不会扫描进去

scanf和 sscanf的区别

Scanf是从标准输入设备中扫描输入的

Sscanf是从标准输入中扫描输入到字符串当中的,他也可以用正则表达式.一般很常用.

三丶内存结构大体的简要

任何一个程序访问理论上是4G的内存

但是操作系统占高2g的内存此时这个内存是不可以读取和修改的,因为这块成为Ring3 也可以成为R0

除非你有操作系统的权限.

而低2g还不是程序可以直接访问的

还可以划分为 低64 和高64

这些是用户区用于和操作系统交互的缓冲区

现在剩下的内存还可以再分为

栈段

堆段

代码区

数据段

也就是咱们程序员常说的内存四区

而现在你的程序运行起来内存也不是都给你的,而是你需要多少我给你多少.

这样就保证了程序可以一下开2-30个了.

下面看看内存模型

四丶基本数据类型

C语言和同类型相比有很多的数据类型

其中__int64 的long类型是非标准类型,如果从商业化角度来看,微软就可以牢牢的把握住

这些人的平台,都是依赖自己的.因为非标准类型的代码,不可以移植的.

溢出和进位的区别

溢出:是针对有符号数据的描述,意思就是当数据到最大值的时候,如果在+1那么数据就会溢出有可能标称负数,恢复代价大.有可能不能恢复.

进位:

进位是针对无符号数据的描述,当数据超过这个数据的时候,那么就会产生进位.当前值还是有效的.可以通过一定的手段获得进位数据.

五丶字符和字符串

字符穿的存储和交互:

总共提出来2中概念

一种是:

C语言风格的,在字符后面以0结尾,代表是一个字符串.

另一种是Pascal风格

前几位(不确定,一般是2位)给定大小,后面存储大小一样的字符,形成一个字符串

他们的优缺点

C语言:

优点:灵活性比较高,特别是网络通信的时候,只要不是以0结尾,那么自己可以传输任意的字符.

缺点:缺点就是比较明显了,如果要找第N个字符,那么要一个一个的查找,

Pascal:

优点:

长度固定,访问N个的效率高,可以以跳板的形式访问

缺点:

缺乏灵活性,如果用于网络,那么传输完之后只能在传输新的,不能接着传输了.

而微软的是2中特性相结合

前表类型,后边以0结尾,(比较狡猾)这样做的好处是,兼容性更高,自家的产品卖得更好.

六丶字符和字符串的区别

‘a’ 和””a’’的区别

字符a是可以访问Ascii编码的

而字符串a则是引用的字符串的首地址

七丶标识符的规范

标识符的规范是:C语言中,定义标识符只能是数字字母下划线

其中数字不能开头

例如:

2ac 这样定义是不对的,这样的话分不清2是干什么的.

八丶C语言中的除法规则

规则式向0取整

3/2 = 1  数学中是1.5

而数学中有向上取整和向下取整的意思

就是1.5 如果向下取整,意思就是取不大于自己的最大整数 也就是2

向上取整就是取不小于自己的最大整数 也就是1

所以在C语言中右移符号使用时必须要判断商是否是负数

如果是负数那么因为规则式向0取整,那么就会出现错误.

1.5向0取整,就是舍弃小数0.5

九丶%号的原理

我们都知道%号的作用

8%3=2

-8%3=-2

8%-3=2

-8%-3=-2

算出来的结果和左操作数符号有关,左操作数是什么符号那么余数就是什么符号.

但是原理咱们不知道,

其实原理就是

A/b=q...r

A = q*b+r;

R = a-q*b;

代入值后发现

8/3=2..2

8 = 2*3+2

余数2 = 8-2*3

所以结果就是2

时间: 2024-10-28 22:09:33

C语言_第二讲_规范以及常用数据类型的相关文章

COM编程_第一讲_深入COM框架以及实现简单的COM

一丶我们要理解COM是什么(为什么理解) 现在很多人会用com(也就是ALT)但是不知道原理,如果改一点东西,那么整体的框架重来,因为你不懂改哪里,如果懂了,那么遇到问题,那么就会知道我要怎么做,是什么问题了 二丶什么是COM COM是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术.在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统.由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升

我的学习之路_第二章_接口/多态

接口 (1)当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式:接口.接口是功能的集合 接口不能创建对象 (2)格式: 父接口: public interface Inter { } 子类: public class InterImpl implements Inter { } (3)接口的特点: A:不需要被abstract修饰. B:类实现接口,可以单实现,还可以多实现. C:接口可以继承接口,可以单继承,也可以多继承. D:接口与父类的功能可以重复,均代表要具备某种功能. (

操作系统_第二章_进程与线程

2018-06-30 1.进程:对正在运行的程序的一个抽象 2.一个进程就是一个正在执行的程序的实例 3.快速的切换称为:多道程序设计 4.一个进程是某种类型的一个活动,它有程序,输入,输出,以及状态 5..四种主要的事件会导致进程的创建 系统初始化 正在运行的程序执行了创建进程的系统调用 用户请求创建一个新进程 一个批处理作业的初试化 6.停留在后台进程的称为守护进程 7.shell中键入sort就可以创建进程了 8.内存一般使用写时复制的方法进行内存共享 9.进程的终止 正常退出 出错退出

数学建模论文赏析_第二版_韩中庚_扫描版_高清

链接:https://pan.baidu.com/s/1zKjfrnqTVUjm9BD_qQX4IQ 提取码:vfge 如需要其它资料,可邮箱[email protected]联系我. 原文地址:https://www.cnblogs.com/onepublic/p/11491425.html

31701424_王志伟_第二组_软件工程个人体验

源代码链接: web端:https://github.com/LinXS597/SUManager 小程序端:https://github.com/fireworks-EX/StudentUnion 安卓端: 后端:https://github.com/zhang-wangz/ruangong-backen 小组分工: 学号 姓名 分工 31702283 王樟 后端设计与开发(java).Druid数据池 31703178 林型双 网页前端设计开发(web) 31701424 王志伟 微信小程序

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第4/5套:Oracle SQL语言之查询语句.主要学习Oracle数据库SQL查询限制排序.Oracle SQL联接查询.Oracle SQL子查询等. 视频学习地址: http://edu.51cto.com/course/course_id-8047.html Oracle SQL语

ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区

原文:ArcGIS for Desktop入门教程_第二章_Desktop简介 - ArcGIS知乎-新一代ArcGIS问答社区 1 Desktop简介 1.1 ArcGIS for Desktop ArcGIS for Desktop是ArcGIS产品线上的桌面端软件产品,为GIS专业人士提供的信息制作和使用的工具.利用ArcGIS for Desktop,你可以实现任何从简单到复杂的GIS任务,包括制图,地理分析,数据编辑,数据管理,可视化和空间处理等.它可以作为三个独立的软件产品购买,每个

js仿百度文库文档上传页面的分类选择器_第二版

仿百度文库文档上传页面的多级联动分类选择器第二版,支持在一个页面同时使用多个分类选择器: 此版本把HTML,CSS,以及图片都封装到"category.js"中,解决因文件路径找不到样式及图片的问题: 源码下载地址:http://download.csdn.net/detail/testcs_dn/7290577 初始状态,一个页面使用两个,可以初始化之前选中的分类: 选择状态: 当选中一个分类后,会触发"onChange"事件,如上图中的"您选择的分类编

2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周

2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决方法 写出项目中自己负责的部分 个人贡献度划分(按百分比给小组各成员划分贡献度,各成员贡献之和为100%) 对结对的小伙伴做出评价给出小伙伴博客链接(重点指出需要改进的地方) 给出项目的码云链接 给出小组结对编程照片 博客内容中如需展示团队的共同成果,请进行说明 如有参考或引用的设计.实现,请进行说