C语言_第一讲_C语言入门

一、C语言的简介

1.C语言是一个标准,而执行标准的时候产生的自动化程序则是编译器 2.了解:1983年美国国家标准化歇会(ANSI)制定了C语言标准. C语言的特点: 3.代码的可移植性(理想状态是代码可以不加修改,就可以移植,前提是不包括任何平台相关库) 4.写代码的时候最好把业务逻辑层和UI层分开.这样便于代码的移植 5.结构化编程(可以把问题分解成一个一个的函数去执行) 6.丰富的数据类型(相对于汇编而言是丰富的) 7.简洁高效的代码(这得看人,不是编译器的或者语言的特性,如果算法写的不好,一样执行速度慢,和语言无关.反之则相反);

二、代码和调试之间的比例

1.调试和写代码的时间比例是2比8 2.写代码占2 调试的时间占8 3.UI和逻辑分离,UI占7,逻辑占2

三、&符号的双重用法

1. 符号在C语言中的场景不一样,那么就会有不同的作用 2.列如: 3.++ + + 2个加号就和加号的意思不一样 4.+号可以看做是加好,也可以看做是数学上的±符号 5.所以不同场景用什么运算符会起到不一样的作用 6.&运算单独使用的时候可以看做是取地址符号,如果左边有操作数的时候可以看做是位与符号

四、程序的挂起状态的三种表现形式

1.Getchar() 2.Scanf(“%d”); 3.System(“pause); 4.其中system()这个函数是与平台相关的函数,所以加了这句话就不可跨平台了

五、Scanf的常见问题解析

1.scanf的用法:通过标准输入设备输入到程序中 2.第二个参数式地址变量,是放地址的.不放地址会把这个变量里面的值当做是一个地址 3.如果访问到不该访问的地址就会出错 4.分别有两个有用的信息是: 5.异常代码:c00005 意思就是访问了一个不该访问的地址 6.异常便宜:00026 可以定位到代码出错的位置 总结:如果没有填地址府,程序不崩溃那么以后可能会吃亏,程序会受影响 有隐患,如果遇到变量的值不再初始化那么会使用上次内存使用后残留的值 所以一定要给变量初始化.

六、批处理

Del *.exe 删除目录下所有的exe可执行的文件 Del *.obj 删除目录下所有的.obj文件 Cl /c /W4 /WX 文件名.c 编译文件名.c为obj文件 Link 文件名.obj 连接文件名.obj文件名为文件名.exe可执行文件 文件名.exe 运行可执行文件 Pause 暂停窗口等待进一步的操作

七、浮点数

浮点数的查看 1.浮点数后边加上f列如 3.25f代表是一个浮点数 2.如果不加的话那么默认会认为是一个双精度的小数 ZERO零在不同场合的用法 Char ch = ‘\0’; Int n = 0; Int *p = NULL; Float f = 0.0f; Double db = 0.0; 切记软件的规范 小数转化为16进制的算法 1.第一步:将小数转化为二进制 假设有一个小数是4.25 那么先转化为二进制为:100.01 2.第二步: 把小数点定位为最前位1的后面,直到遇到第一位为1的值 那么现在是1.0001总共往左移动了2位那么可以看做是1.0001*2^2次方 3.第三步:定义符号位 符号位0,因为4.25的是正数 4.第四步:定义指数为(指数为在32位系统下占8位 double 是11位) 而指数位是2^2的幂+127 他的次方(也就是幂)是2 所以就是2+127 = 129 转化为二进制是1000 0001 最后加上符号位是 0 1000 0001 5.第五步:确定尾数为(尾数位占23位不足的补零在) 直接把1.0001 把前边的1去掉放在指数为后面即可 0 1000 0001 0001 0000 0000 0000 0000 000

最后按照从右向左4位一体的分割二进制转化为16进制 0100 0000 1000 1000 0000 0000 0000 0000 4 0 8 8 0 0 0 0 按照小端模式就是00 00 88 40

十六进制转化为小数的实现

第一步:把给定的十六进制转化为二进制 44 22 00 00 0100 0100 0 010 0010 0000 0000 0000 0000 第二步:去掉符号位,取指数位(32位下是8位) 0是符号位去掉之后的值是 1000 1000 128 +8 = 136 第三步:用指数得出的值减去127 然后尾数从指数后面的前面加1然后往右移动 >>(指数减去127得出的值的位数) 结果是136 - 127 = 7; 那么小数点就从刚才取出指数位 的后面往后移动7位 结果为: 注意:取出指数后,在后边指数后的位置加个1点(1.XXX为尾数) (移动位置的时候也从1.后面开始算) 1.010 0010 0000 0000 0000 0000 (一.1.不算,从尾数开始移动 1 010 0010.0000 0000 0000 0000 (二.移动后 第四步:把移动后的结果转化为10进制的数即可. 如果小数位有那么就是乘以2^1...(尾数有多少就乘以多少) 正确结果是:16进制的162.00

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏King_3的技术专栏

vector.clear()不能用来清零

vector.clear()函数并不会把所有元素清零,笔者就曾经这样幻想过这个函数的作用,然而事实证明并不是。

4362
来自专栏木子昭的博客

js的由弱变强之路,Flow为js添加编译过程

javascript是一门弱类型语言, 所谓弱类型, 就是一个变量既可以被赋值字符串, 数字, 又可以被赋值数组, 对象, 弱类型的好处很多, 但也有缺点, 比...

1053
来自专栏Java学习之路

浅析Java的Frok/Join框架 一丶Fork/Join框架产生背景:二丶工作窃取算法三丶Fork/Join框架的设计思想四丶JDK实现Fork/Join框架五丶ForkJoin框架的实现原理

一丶Fork/Join框架产生背景: 随着并发需求的不断提高和硬件的不断发展,程序并行执行仿佛就提上日程上来了,伟大的毛主席就说过:“人多力量大”,所以如果一件...

4346
来自专栏高性能服务器开发

写给新手们看的编程修养

什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速...

1093
来自专栏FreeBuf

无须字母构建XSS向量

要求 之前我在玩一个XSS游戏的时候突然有了些想法,本着分享的原则,于是便有了这篇文章。在此,我将分享一个此前没有接触过的一个XSS攻击向量。 相同水平的前提...

2049
来自专栏小樱的经验随笔

BugkuCTF 矛盾

1402
来自专栏PHP在线

设计模式分类

Introduction 根据目的和范围,设计模式可以分为五类。按照目的分为:创建设计模式,结构设计模式,以及行为设计模式。按照范围分为:类的设计模式,以及对象...

3226
来自专栏java一日一条

在什么情况下,Java比C++慢很多?

垃圾回收器。这是一把“双刃剑”。如果你的程序遵循“大部分对象都在年青代中消亡”模型,垃圾回收器是非常有利的(很少的碎片,更好的缓存局部性)。但是,如果程序不遵循...

522
来自专栏Pythonista

封装-python

    从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,还有alex一起装进麻袋,然后把麻袋封上口子。但其实这种理解相当片面

1392
来自专栏HTML5学堂

面向对象系列讲解—面向对象的含义&工厂模式

HTML5学堂:在上一篇文章当中,我们把对象进行了基本的解释,本文当中,我将为大家解释什么是面向对象?为何要使用面向对象,而不用面向过程,面向对象又有什么好处,...

2826

扫码关注云+社区