C语言 |【01】基础(计算机及C初步)

计算机介绍

计算机结构组成

在这里插入图片描述

计算机系统组成

在这里插入图片描述

程序和指令
  • 指令是对计算机进行程序控制的最小单位。
  • 所有的指令的集合称为计算机的指令系统。
  • 程序是为完成一项特定任务而用某种语言编写的一组指令序列。
    在这里插入图片描述
语言发展特性

机器语言

  • 计算机的大脑或者说心脏就是CPU,它控制着整个计算机的运作。每种CPU都有自己的指令系统。这个指令系统,就是该CPU的机器语言。
  • 机器语言是一组由Q和1系列组成的指令码,这些指令码,是CPU制作厂商规定出来的,然后发布出来,请程序员遵守。
  • 要让计算机干活,就得用机器语言(二级制数)去命令它。这样的命令,不是一条两条,而是上百条。而且不同型号的计算机其机器语言是不相通的,按着一种计算机的机器指令编制的程序,不能在另一种计算机上执行。

汇编语言和编译器

  • 机器语言编程是不是很令人烦恼呢,终于出现了汇编语言,就是一些标识符取代0与1。一门人类可以比较轻松认识的编程语言。
  • 只是这门语言计算机并不认识,所以人类还不能用这门语言命令计算机做事情。这正如如何才能让中国人说的话美国人明白呢?—翻译!
  • 所以,有一类专门的程序,既认识机器语言,又认识汇编语言,也就是编译器,将标识符换成0与1,知道怎么把汇编语言翻译成机器语言。

高级语言:

  • 汇编语言和机器语言都是面向机器的,机器不同,语言也不同。既然有办法让汇编语言翻译成机器语言,难道就不能把其他更人性化的语言翻译成机器语言?
  • 1954年,Fortran 语言出现了,其后相继出现了其他的类似语言。这批语言,使程序员摆脱了计算机硬件的限制,把主要精力放在了程序设计上,不在关注低层的计算机硬件。这类语言,称为高级语言。
  • 同样的,高级语言要被计算机执行,也需要一个翻译程序将其翻译成机器语言,这就是编译程序,简称编译器。
  • 这类高级语言解决问题的方法是分析出解决问题所需要的步骤,把程序看作是数据被加工的过程。基于这类方法的程序设计语言成为面向过程的语言。C语言就是这种面向过程的程序设计语言。

语言层次
在这里插入图片描述
语言发展
在这里插入图片描述
在这里插入图片描述

CPU内部结构与寄存器

程序执行过程
在这里插入图片描述
64位和32位系统区别

  • 寄存器是CPU内部最基本的存储单元
  • CPU对外是通过总线(地址、控制、数据)来和外部设备交互的,总线的宽度是8位,同时CPU的寄存器也是8位,那么这个CPU就叫8位CPU
  • 如果总线是32位,寄存器也是32位的,那么这个CPU就是32位
  • CPU有一种CPU内部的寄存器是32位的,但总线是16位,准32位CPU
  • 所有的64位CPU兼容32位的指令,32位要兼容16位的指令,所以在64位的CPU上是可以识别32位的指令
  • 在64位的CPU构架上运行了64位的软件操作系统,那么这个系统是64位
  • 在64位的CPU构架上,运行了32位的软件操作系统,那么这个系统就是32位
  • 64位的软件不能运行在32位的CPU之上

寄存器名称

8位16位32位64位
AAXEAXRAX
BBXEBXRBX
CCXECXRCX
DDXEDXRDX

寄存器、缓存、内存关系

  • 按与CPU远近来分,离得最近的是寄存器,然后缓存(CPU缓存),最后内存。
  • +CPU计算时,先预先把要用的数据从硬盘读到内存,然后再把即将要用的数据读到寄存器。于是CPU<–>寄存器<–>内存,这就是它们之间的信息交换。
  • 那为什么有缓存呢?因为如果老是操作内存中的同一址地的数据,就会影响速度。于是就在寄存器与内存之间设置一个缓存。
  • 因为从缓存提取的速度远高于内存。当然缓存的价格肯定远远高于内存,不然的话,机器里就没有内存的存在。
  • 由此可以看出,从远近来看:CPU–>寄存器—>缓存–>内存。

简介

c语言特点

优点

  • 执行速度快
  • 功能强大
  • 编程自由

缺点

  • 写代码实现周期长
  • 可移植性差
  • 过于自由,经验不足易出错
  • 对平台库依赖较多

应用
在这里插入图片描述

C语言的应用极其广泛,从网站后台,到底层操作系统,从多媒体应用到大型网络游戏,均可使用C语言来开发:

  • C语言可以写网站后台程序
  • C语言可以专门针对某个主题写出功能强大的程序库
  • C语言可以写出大型游戏的引擎
  • C语言可以写出另一个语言来
  • C语言可以写操作系统和驱动程序,并且只能用C语言编写
  • 任何设备只要配置了微处理器,就都支持C语言。从微波炉到手机,都是由C语言技术来推动的
    在这里插入图片描述
C语言的简介

32个关键字、9种控制语句、34运算符、34种运算符

32个关键字:auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while

9种控制语句:if()~else for()~ while()~ do~while() continue break switch goto

34种运算符:

名称符号
算术运算符+ - * / % ++ --
关系运算符< <= == > >= !=
逻辑运算符! && ||
位运算符<< >> ~ | ^ &
赋值运算符=
条件运算符?:
逗号运算符,
指针运算符* &
求字节数sizeof
强制类型转换(类型)
分量运算符->
下标运算符[]
其他()
程序编写

HelloWorld

//导入标准输入输出库
#include <stdio.h> 
//包含头文件 std标准库 io input output 输入输出库 <>系统库 “” 自定义头文件
//主函数 一个程序有且只能有一个主函数
//函数的返回值类型 int整型
//函数的参数类型   void空类型
//{}程序体代码体  函数体
int main(void)
{
       //打印函数 “”引起来的成为字符串常量
       //转义字符 \n 换行 \t ;代表一条一句的结束 多个分号代表多个空语句
       printf("hello world\n");
       //函数的返回值 如果在主函数中遇到return 代表程序结束
       return 0;
}

gcc编译代码

gcc编译器介绍

  • 编辑器(如vi、记事本)是指我用它来写程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我们用编辑器编写程序,由编译器编译后才可以运行!编译器是将易于编写阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。
  • gcc(GNU Compiler Collection ,Gu编译器套件),是由GNU开发的编程语言编译器。gcc原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux 、BD、Mac 等)采纳为标准的编译器,gcc同样适用于微软的Windows 。
  • gcc最初用于编译C语言,随着项目的发展gcc已经成为了能够编译C、C++、java、ada、fortran 、Object C 、Object C ++、go语言的编译器大家族。

编译格式

选项含义
-o file指定生成的输出文件为file
-E只进行预处理
-S(大写)只进行预处理和编译
-c(小写)只进行预处理、编译和汇编

注:window - .exe; Linux - .out

编译过程
在这里插入图片描述

在这里插入图片描述

IDE使用

快捷使用
快捷建含义
Ctrl +k Ctrl+f自动格式化代码
Ctrl + k Ctrl + c注释代码
Ctrl + k Ctrl + u取消注释
F9设置断点
F5调试运行
Ctrl+F5不调试即运行
Ctrl + Shift + b编译,不运行
F10next调试
F11step调试
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jxiepc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值