• C语言笔记一


    学习C语言已经有一段时间,然而发现越学不知道的东西越多,这是在印象笔记中记得一些东西,现在再回顾一遍顺便补充一些新东西。
    一,基础知识
      运算符号  优先级  单目>算术>关系
      从高到低  
      {
           括号
           成员      .      解引用      *
           算数运算符  *     /     %     +     -
           关系运算符   >     >     >=     <=     !=     ==
           逻辑运算符     &&     ||(短路径法则:&&前为假,后不判断;||前为真,后不判断)
           赋值运算符     
      }
      注意:
      c语言中,前置++/--,后置++/--都不能做左值
      c++,      前置~~可以做左值,后置不能做左值
     
     
      例子:
       判断是否为闰年问题
      (year%4 == 0 && year%100 != 0)||(year%4 == 0 && year%400 == 0 )
     
    二,各种类型与零值比较
     
      bool类型
      bool flag=true;
      if(flag){ }
      else{}
     
      float类型
      if(float>=0.0000001&&float<=0.00001)
     
      指针类型
      if(p==NULL)
      if(p!=NULL)
     
    三,关于hello world程序
     
      #include<stdio.h>
      int main()
      {
        printf("hello world\n");
        return 0;
      }
     
      从main.cpp->编译器编译(语法检查)->.obj ->链接器链接(与库文件(.lib)链接)->.exe
      详细过程:
      开始    编辑
     
      1预处理      (-E)
        (不做语法检查)
        1,宏替换
        2,“删除”注释语句(空格替换注释)
        3,复制粘贴头文件(自定义类型,类型重定义,宏,函数声明)
        4,条件编译指令,#if.    #endif.       #ifdef
        5,其他
     
     
      2,编译         (-S)
            语法检查,将C语言生成汇编语言代码
         源码—————>中间语言(编译器前段)
              1,词法分析
              2,语法分析
              3,语义分析
        中间语言———>目标文件(编译器后段)
              1,代码生成
              2,目标代码生成
     
      3,汇编   .o
           汇编语言-->根据当前平台(汇编器)-->机器指令   
         
      4,链接   .exe
           将汇编后的机器指令和编译环境提供的库文件链接合并,生成可执行程序
     
    四,内存分了很多区,主要包括
    {    
        栈: 1,从高地址向低地址生长
           2,分配效率高
           3,无碎片问题
           使用场景:数据量小(<=1024)
                已知内存占用大小
                访问非常频繁
        堆: 1,从低地址向高地址生长
             2,分配效率低
             3,频繁申请/释放,容易造成内存碎片
           使用场景:数据量大(>=1024)
                处理问题所需空间大小不明确
                访问频率相对较低
                需要对变量生命周期进行手动管理
        代码段
        常量区    :1,静态常量区
                2,全局变量区
                  3,数据段
    }
     
    养成良好的编程代码风格;
  • 相关阅读:
    测试计划设计
    测试方案
    使用gulp构建自动化工作流
    ESLint--定制你的代码规则
    Node.js学习笔记(一):快速开始
    React-Native性能优化点
    ES6笔记(一):ES6所改良的javascript“缺陷”
    windows下React-native 环境搭建
    使用ssh连接gitHub
    javascript中的prototype和constructor
  • 原文地址:https://www.cnblogs.com/junlinfeizixiao/p/5599334.html
Copyright © 2020-2023  润新知