• 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 = ‘’;
    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

  • 相关阅读:
    C++报错undefined reference to vtable处理
    emplace_back无法支持<braceenclosed initializer list>吗?
    使用proxychains代理应用
    EasyExcel快速读写Excel数据
    解决SpringBoot跨域的三种方式
    SQL Server 锁(LOCK)大全
    MySQL预处理语句PREPARE、EXECUTE、DEALLOCATE使用大全
    C# 自定义泛型二维数组
    C# 一维数组与二维数组相互转换
    C#枚举高级应用
  • 原文地址:https://www.cnblogs.com/iBinary/p/7341942.html
Copyright © 2020-2023  润新知