C语言基础学习

本文介绍了C语言的基础概念,包括软件构成、算法特性、C语言的发展历程及其与其他编程语言的关系。此外,还详细讲解了C语言的基本数据类型、运算符、关键字及控制语句,并探讨了计算机存储系统的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件基础:

软件=程序+文档

程序=函数+函数+...

函数=数据结构+算法

 

算法:方法,整个步骤。

 

语句:在程序中,以;作为结束的代码,表示一条语句。

  每个语句就是一个执行的步骤

 

 

算法的五个特性:

①有穷性:每条语句,必须在一定的时间内可以执行完。

②确定性:每条语句,算法的每个步骤,执行后的结果唯一。

③输入  :需要有初始信息。可以有多个输入,也可以没有输入。

④输出  :执行的结果,是为人所需的,必须要有输出。

⑤健壮性(可行性):可行,每个步骤的结果,和预期的相同。

 

 

C语言的前世今生:

KT教授 ->UNIX

汇编 ->与机器硬件一一对应。  移植性(兼容性)很差

KT ->BCPL ->B语言

DRKT ->B语言重写UNIX ->新的数据结构和语法出 ->C语言(C语言来自于BCPL中的C

DRKT ->C语言重写UNIX

 

C语言的后代:

主流编程语言:易语言, C, C++, Java, C#, PHP, Objective-C, Swift, VB

 

C语言于20世纪70年代诞生于美国贝尔实验室,在世界范围应用非常广泛,适合开发效率要求高,偏底层或系统级的软件

汇编语言是低级语言

C语言是一门中()级语言,C++, Java, C#是高级语言

 

脚本语言:Shell脚本,PHPJavascript

编译型语言:C, C++, Java, C#

 

 

C语言基础:

 

运算符

一共34种:

+ - * / % ++ —— > < = == >= != ! || |  & &&  ^  ~  <<  >>  ( )

{ } [ ] \ . , ; ? " ' :  <=

 

关键字

共32

int 整型

long 长整型

short 短整型

char 字符型

float 浮点型

double 双精度浮点型

void

struct 结构体

union 联合体

signed 有符号

unsigned 无符号

enum 枚举

volatile 定义隐含变量

const 确定变量不变

typedef 重命名字符类型

 

if if选择语句关键字

else if选择语句关键字

switch switch选择语句关键字

case switch选择语句关键字

default switch选择语句关键字

for for循环语句关键字

while while循环语句关键字

do do whilie循环语句关键字

return 返回函数值

break 返回跳出循环体

continue 返回跳出当前循环

goto 返回

 

auto 自动变量

static 静态变量

register 寄存机变量

extern 外部变量

 

sizeof 标识运算符

 

 

控制语句

9

 

选择:2个   if   switch

循环:3个   for  while   do..while

返回:4个   return  break continue goto

 

函数=数据结构 + 算法

 

 

标识符:

函数名,变量名等。规则:

标识符由字母、数字、下划线组成,不能以数字开头,不能和关键字相同,不能重名。

 

 

 

 

存储

程序是对数据进行处理的,数据必须存放在存储器中

 

存储器分为外存(硬盘,U盘,光盘等)和内存(内存,缓存以及寄存器)

 

外存是非易失性存储器,即掉电后数据不丢失,可以持久存放数据,制造成本低,容量大,但读写效率较低。数据是以文件的形式存放在外存设备上的,也称ROM(Read-Only Memory,只读存储器)

 

内存是易失性存储器,即掉电后数据会丢失,用来存放临时数据,比如变量或中间运算结果,读写效率很高,但制造成本高,容量小,也称为RAM(Random Access Memory,随机访问存储器)

 

 

计算机的世界是二进制的,一切非二进制数据要能被计算机程序处理,必须先转换为二进制形式(这个过程就称为编码),存储器也只能存放二进制数据

 

存储单位:

用来衡量数据量的大小

bit 简写b,即比特或位,一个二进制数字(01)

Byte 简写B,即字节,1B = 8b

KB 千字节, 1KB = 2^10B = 1024B

MB 兆字节,1MB = 2^10KB

GB 吉字节,1GB = 2^10MB

TB 太字节,1TB = 2^10GB

 

 

 

 

C语言支持的数据类型:

基本(简单)数据类型和复杂数据类型

 

 

基本数据类型:数值型,字符型,特殊类型

 

数值型:整数类型,浮点类型

 

整数类型:短整型(short,占2Byte存储空间,表数范围-32768 - +32767)

          无符号短整型(unsigned short,占2B,表数范围0 - 65535)

          整型(int,占4Byte存储空间,表数范围-2^31 - +2^31-1)

          无符号整型(unsigned int,占4B,表数范围0 - 2^32-1)

          长整型(long,占存储空间大小和表数范围和int一样),无符号长整型(unsigned long,占存储空间大小和表数范围都和unsigned int一样)

 

浮点类型:单精度浮点型(float,占4Byte,大概表数范围-10^38 - -10^-38+10-38 - +10^38)

          双精度浮点型(double,占8Byte,大概表数范围-10^308 - -10^-308+10-308 - +10^308)

 

字符型(char,占1Byte,表数范围-128 - +127),无符号字符型(unsigned char,占1Byte,表数范围0 - 255)

 

特殊类型:空类型(void,不占存储空间,通常用作类型占位符)

 

 

不同类型的数据的存储形态:

1.整数是以补码形式存放的

 

原码,反码和补码

 

零和正整数的原码,反码和补码是一样的,而负整数的原码,反码和补码不一样,计算方法是这样的:首先计算出原码,然后符号位保持不变,其他位按位取反就可以得到反码,反码再加1就可以得到补码

 

对于有符号的整数类型,最高位为符号位,0表示正,1表示负

对于无符号的整数类型,最高位是数值位,和其他位一样

 

 

 

不同进制间的互转:二进制,八进制,十进制,十六进制

 

十进制整数转换为二进制的方法:除2取余,逆序书写

例:21D = 10101B   -21D = -10101B

 

十进制整数转换为八进制或十六进制的方法和转换为二进制类似

例:100D = 144O = 64H

 

二进制整数转换为十进制的方法:每一位乘以其位权然后相加

例如:1010B = 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 10D

 

八进制或十六进制整数转化为十进制的方法和二进制的类似

例如:a3b4H = 10*16^3 + 3*16^2 + 11*16^1 + 4*16^0 =41908D

 

二进制整数转换为八进制或十六进制

例:10011001B = 231O = 99H

 

八进制或十六进制整数转换为二进制

例:144O = 001100 100B   144H = 101000100B

 

 

十进制小数转换为二进制的方法:乘2取整,顺序书写

例:0.125D=0.001B

十进制小数数转换为八进制或十六进制的方法和转换为二进制类似

 

二进制小数转换为十进制的方法:每一位乘以其位权然后相加

例:0.10101B = 1*2^-1 + 0*2^-2 + 1*2^-3 + 0*2^-4 + 1*2^-5 = 0.5 + 0.125 + 0.03125

 

八进制或十六进制小数转化为十进制的方法和二进制的类似

 

二进制小数转换为八进制或十六进制

例:0.1001011B = 0.454O = 0.96H

 

八进制或十六进制小数转换为二进制

例:A4.A3BH = 10100100.101000111011H

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值