学习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,数据段

}

 
养成良好的编程代码风格;

C语言笔记一的更多相关文章

  1. R语言笔记

    R语言笔记 学习R语言对我来说有好几个地方需要注意的,我觉得这样的经验也适用于学习其他的新的语言. 语言的目标 我理解语言的目标就是这个语言是用来做什么的,为什么样的任务服务的,也就是设计这个语言的动 ...

  2. R语言笔记4--可视化

    接R语言笔记3--实例1 R语言中的可视化函数分为两大类,探索性可视化(陌生数据集,不了解,需要探索里面的信息:偏重于快速,方便的工具)和解释性可视化(完全了解数据集,里面的故事需要讲解别人:偏重全面 ...

  3. Scala语言笔记 - 第一篇

    目录 Scala语言笔记 - 第一篇 1 基本类型和循环的使用 2 String相关 3 模式匹配相关 4 class相关 5 函数调用相关 Scala语言笔记 - 第一篇 ​ 最近研究了下scala ...

  4. Go 语言笔记

    Go 语言笔记 基本概念 综述 Go 语言将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,达到完美平衡. 设计者通过 goroutine 这种轻量级线程的概念来实现这个目标,然后通过 ch ...

  5. 014-预处理指令-C语言笔记

    014-预处理指令-C语言笔记 学习目标 1.[掌握]枚举 2.[掌握]typedef关键字 3.[理解]预处理指令 4.[掌握]#define宏定义 5.[掌握]条件编译 6.[掌握]static与 ...

  6. 013-结构体-C语言笔记

    013-结构体-C语言笔记 学习目录 1.[掌握]返回指针的函数 2.[掌握]指向函数的指针 3.[掌握]结构体的声明 4.[掌握]结构体与数组 5.[掌握]结构体与指针 6.[掌握]结构体的嵌套 7 ...

  7. 011-指针(上)-C语言笔记

    011-指针(上)-C语言笔记 学习目标 1.[掌握]字符串常用函数 2.[掌握]指针变量的声明 3.[掌握]指针变量的初始化 4.[掌握]函数与指针 5.[掌握]指针的数据类型 6.[掌握]多级指针 ...

  8. 010-字符串-C语言笔记

    010-字符串-C语言笔记 学习目标 1.[掌握]二维数组的声明和初始化 2.[掌握]遍历二维数组 3.[掌握]二维数组在内存中的存储 4.[掌握]二维数组与函数 5.[掌握]字符串 一.二维数组的声 ...

  9. 009-数组-C语言笔记

    009-数组-C语言笔记 学习目标 1.[掌握]数组的声明 2.[掌握]数组元素的赋值和调用 3.[掌握]数组的初始化 4.[掌握]数组的遍历 5.[掌握]数组在内存中的存储 6.[掌握]数组长度计算 ...

  10. 008-进制-C语言笔记

    008-进制-C语言笔记 学习目标 1.[掌握]include预处理指令 2.[掌握]多文件开发 3.[了解]认识进制 4.[掌握]进制之间的互相转换 5.[掌握]原码,反码,补码 6.[掌握]位运算 ...

随机推荐

  1. Django-跨站请求

    //用户验证Tonken 在Html 中 设置一个Token {% csrf_token %} //在代码Views.py 中返回值添加 context_instance=RequestContext ...

  2. thinkphp __PUBLIC__的定义 __ROOT__等常量的定义

    2 3 4 5 6 7 8 9 '__TMPL__'      =>  APP_TMPL_PATH,  // 项目模板目录 '__ROOT__'      =>  __ROOT__,    ...

  3. Linux的学习日记

    CURL 在Ubuntu下尝试安装通过包安装Node.js的时候有这样一种安装方法, 那么有必要学学CURL的知识了. curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Un ...

  4. float,double和decimal类型

    float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有 ...

  5. U盘因为装linux系统变小了

    U盘在Windows下被UltraISO等软件制作成Linux启动盘后会自动被格式化成FAT格式,导致容量变小. 用DiskGenius去修复 http://www.jb51.net/softs/75 ...

  6. 10月28日下午MySQL数据库的增加、删除、查询(匹配数据库登录和可以增、删、查的显示数据库内容的页面))

    一.匹配数据库登录 步骤: 1.做一个普通的登录界面,注意提交方式为post. <!--登录界面--> <form action="chuli.php" meth ...

  7. flask初探

    为什么我们需要模板 让我们来考虑下我们该如何扩充我们这个小的应用程序. 我们希望我们的微博应用程序的主页上有一个欢迎登录用户的标题,这是这种类型的应用程序的一个"标配".忽略本应用 ...

  8. ThinkPhp 验证码不显示图片

    验证码不显示原因分析: 1.先确保是否开启了 gd库 2.页面是否存在bom头 3.导入的ORG.Util.Image是否存在 4.入口文件中是否有define('APP_DEBUG', TRUE); ...

  9. 如何让ConfigurationManager打开任意的配置文件

    VisualStudio的配置文件很好很强大,用来保存数据库连接字符串或键值对都非常方便,只需要通过ConfigurationManager的ConnectionStrings或AppSettings ...

  10. python 3编码

    python 3和2很大区别就是python本身改为默认用unicode编码. 字符串不再区分"abc"和u"abc", 字符串"abc"默 ...