C语言学习笔记之前言

  • 最近学习C语言,留下些学习笔记,以便后面返回复习,同时也算时分享一下自己的学习记录(学习C语言用的是狂人c这本书有兴趣可以去学习原著)

最近学习C语言,留下些学习笔记,以便后面返回复习,同时也算时分享一下自己的学习记录(学习C语言用的是狂人c这本书有兴趣可以去学习原著)

前言

1、C语言是什么
      C语言是一种强大、高效、优美的程序设计语言。最初,C语言是作为程序员工作语言而出现的,使用高效、简洁、表达力强、可移植性好是其公认的基本特征。
2、C之近亲
      20世纪90年代,从C语言发展、衍化出C++、Java等程序语言。而在某些领域,如嵌入式系统开发等,C语言始终是一种不可替代的工具语言。
      不太精确地说,C是C++的子集,C++是对C的扩展。
3、为何学C
      C语言更接近于机器语言这一特点,不仅决定了它代码效率很高,而且使得它作为一种学习语言时,能使学习者更为深刻的理解计算机的工作机制以及程序本质。
      在程序结构上,C语言易于体现结构化程序的设计思想。C语言是一种充满着自由气息的语言,这种自由体现在他的创造能力之中:丰富的运算,强大的构造新数据的能力和对思想清晰、简洁、自然地表达方式。而自由的代价就是需要对错误保持永远不懈的警惕

1、基础知识
       编程:就是编写计算机程序。
       宏观看计算机运行情况:从输入设备(鼠标、键盘等)接受数据 ->内部处理 (主板) -> 把结果输出到输出设备(显示器、打印机等)。主板通过总线连接计算机所有设备完成主要工作。主板上的关键部件:ROM、 RAM、CPU等。
2、CPU
       CPU是中央处理器(Central Processing Unit)的简称,包括两个功能:进行运算(AU)和控制计算机其他部件工作(CU)。
       CPU进行运算工作部分叫做 运算器(Arithmetical Unit,AU)
       指挥其他部分工作的部分称之为控制器(Control Unit,CU)
3、内存
       ROM和RAM都被归类为存储器,由它们辅助CPU工作,他们也合称内存。计算机执行的任务被分解成一个个的“小动作”,在任务被执行时,就被存储在这里。
       内存目前由半导体材料构成,其基本元件有2种状态,分别表示0和1。内存中每个元件的状态 (0或1)被叫做一个bit或位。 每若干个相邻元件被划分为一组(通常是8个bit一组)——这样的元件组被称为Byte或字节。
       每若干连续的字节可能表示让计算机执行的一个动作,也可能表示一个需要被计算的数据。控制器每次读取若干字节,然后通过总线将其变成电信号,让计算机执行各种对应的操作或计算,然后再读取后面的若干字节数据,以执行整个任务。每个让计算机完成一个动作的一组二进制数都是一条
指令(Instruction)。 由此可见,所谓指令就是能被计算机识别并执行的二进制代码,他确定了计算机的某一个具体操作。
      计算机的运行是在控制器的指挥、协调下完成的。然而控制器本身并不了解究竟应该让计算机各个部分执行哪些动作。 控制器是根据存储器(内存)中的内容来指挥各个部件做动作的。为解决某个具体问题或完成一项特定任务的许多指令的集合就叫程序。这种把计算机要执行的动作写成一系列二进制数形式的指令,并在执行前将它存储在内存中, 然后再由控制器自动读取执行的思想就是所谓“存储程序控制原理”。
4、内存中的程序是从哪里来的
       大多数程序平时都是以文件的方式存储在外部存储设备中,这些文件的扩展名通常是“ .EXE ”叫做可执行文件。
5、可执行文件的制作
(1)机器语言
       直接用二进制代码表示计算机命令的编程语言叫做机器语言(Machine Language),这是计算机唯一识别的语言。由于机器语言是CPU直接使用的语言,与人类语言相差甚远,因此被称为“低级语言”
(2)汇编语言
       汇编语言是使用一些约定的文字、符号和数字,按规定格式表示不同的指令,然后用这些来变写程序语言的语言。汇编语言用助记符(add、move······)代替操作码(10101110 ,10111101······),用地址符代替了 操作数,同时常量被写成十六进制。由于这种替代,机器语言被“符号化”了,所以汇编语言又被称为符号语言。 汇编语言并不是CPU能够直接识别并执行的语言,因此汇编语言编写的程序需要一种专门的软件(汇编器)把汇编语言程序“翻译”成对应的机器语言,而这个过程就叫做“汇编”
(3)高级语言
       用高级语言编写出的可供人阅读的程序叫做源程序(Source Program),也叫源代码(Source Code),一般以文件的形式存储在磁盘上所以也叫源文件(Source File)
       高级语言同样不能直接被CPU识别并执行,也需用到一种专门软件(编译器 Compiler)“翻译”成机器语言,这个过程就叫做“编译”。编译后的结果一般存储成一个二进制指令集合的文件,扩展名是.EXE
(4)C语言
       C语言也是众多高级语言的一种,而且C语言是世界最流行、应用最为广泛的高级程序设计语言。

C语言学习笔记--前言相关推荐

  1. 【Go语言 · 学习笔记】

    文章目录 Go语言 · 学习笔记 一.Go包管理 1. 什么是Go语言中的包 2. 包的命名 3. main包 4. 导入包 5. 远程包导入 6. 命名导入 7. 包的init函数 二.Go开发工具 ...

  2. c语言float二进制输出代码_C语言学习笔记——学前知识概述

    将我大一学习C语言时做的笔记拿来与大家分享,内容比较浅显,比较适合初学者,如有错误还请见谅,提出改正,谢谢! 前言:此C语言笔记是本人在自学时记录的一些重点或初学者常犯的错误,希望我的这本笔记能够对大 ...

  3. c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体

    枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...

  4. R语言学习笔记——高级篇:第十四章-主成分分析和因子分析

    R语言 R语言学习笔记--高级篇:第十四章-主成分分析和因子分析 文章目录 R语言 前言 一.R中的主成分和因子分析 二.主成分分析 2.1.判断主成分的个数 2.2.提取主成分 2.3.主成分旋转 ...

  5. (一)Go语言学习笔记

    Go语言学习笔记 1 前言 2 写Go语言需要注意的地方 2.1 Go语言编译执行和直接run的区别 2.2 Go语言的特点 2.3 Linux下配置Go环境变量 2.4 随记 3 go_code 3 ...

  6. 计算机二级C语言学习笔记(一)

    前言 计算机二级是面向非计算机专业的,对于政府和国企还是有一定作用的,有些岗位会要求.应试考试手上还是需要有点资料的,某宝上面直接买考试大纲和题库.本系列内容是我个人的学习笔记内容,主要分为了三大部分 ...

  7. 梓益C语言学习笔记之链表&动态内存&文件

    梓益C语言学习笔记之链表&动态内存&文件 一.定义: 链表是一种物理存储上非连续,通过指针链接次序,实现的一种线性存储结构. 二.特点: 链表由一系列节点(链表中每一个元素称为节点)组 ...

  8. 6.方法(go语言学习笔记)

    6.方法(go语言学习笔记) 目录 定义 匿名字段 方法集 表达式 1. 定义 方法是与对象实例绑定的特殊函数. 方法是面向对象编程的基本概念,用于维护和展示对象的自身状态.对象是内敛的,每个实例对象 ...

  9. 梓益C语言学习笔记之指针

    梓益C语言学习笔记之指针 一.32位平台下,地址是32位,所以指针变量占32位,共4个字节 二.内存单元的地址即为指针,存放指针的变量称为指针变量,故:"指针"是指地址,是常量,& ...

最新文章

  1. 锁定计算机后等于睡眠吗,如何防止计算机自动进入睡眠和/或休眠状态?
  2. umi搭建react+antd项目(一)环境配置
  3. JavaScript夯实基础系列(二):闭包
  4. 微信小程序实现分类菜单 swiper分类菜单
  5. 推荐一个神器 - 把你的照片随心所欲的摆成各种形状
  6. re.split() 根据句子中的序号进行切分
  7. [导入]新手入门 Fedora Linux 7系统的安装指南
  8. pyqtsignal()作用
  9. 信号量函数(semget、semop、semctl)
  10. php 处理vue上传图片 base64_encode file_put_contents file_get_contents
  11. 文件对应的Content-Type类型
  12. Oracle 11g 从入门到精通 视频教程——适合新手入门学习
  13. 解决百度地图生成器添加标注后图标不显示的问题
  14. 开根号的笔算算法图解_手工开根号原理及其步骤
  15. 【Mesh】关于Mesh中Seq+IV与RPL分析
  16. CocoaPods深入一点
  17. Apache Superset 1.2.0教程 (二)——快速入门(可视化王者英雄数据)
  18. 虚幻四学习笔记(2)—— 学习途径
  19. 5、SpringMVC自动配置概览
  20. DataStage History

热门文章

  1. 带带弟弟ocr,对各种类型验证码说不!
  2. 运行Java项目报错 org.springframework.beans.factory.UnsatisfiedDependencyException
  3. bbs论坛中的问题和心得。(更新)
  4. 游戏建模在UE4中创建科幻环境:功率过载(二)
  5. java 读取文件第n行_java读取文件最后N行
  6. 杨辉三角-原理方法的由来
  7. 企业工商四要素核验API 推荐
  8. C++11下条件变量之虚假唤醒
  9. Python核心技术总结
  10. Idea断点调试(debug)详解