从零开始的C语言学习计划-初识C语言第三趴

操作符

SIZE OF

求一个变量或类型的大小

size of 求变量大小括号可以省略

二进制按位取反

看注释即可

 

前置后置加减

如图

 

强制转换类型

如图(不建议)

关系操作符

>

>=

<

<=

!=   用于测试“不相等”;

==  用于测试“相等”

逻辑操作符

&&   逻辑与

 | |    逻辑或

 逻辑与

 逻辑或:两个有一个为真则为真

条件操作符

 如图所示,如果a大于b为真,执行a,若为假,执行b。

一些其他操作符

逗号操作符(,)

下标引用:例如:arr【45】=(......)

函数调用:例如:int ADD(int x,int y)

int a=ADD (3,5)

常见关键字部分介绍

register(寄存)

计算机的存储结构可以分成以下几部分

寄存器

高速缓存                               

内存

硬盘

这些存储结构存储的数据,为了CPU-中央处理器服务

当CPU需要数据时,会先从寄存器拿,如果寄存器没有,再向下一层拿数据,这样速度最快

signed

我们普遍使用的int函数其实叫做 signed int,只不过平时会省略,这样的int是有符号的

符号的int叫做:unsigned int

上面这种数据类型还是挺长的,所以为了将一些数据类型简写,我们可以使用类型定义关键字

typedef

这样的话会简便不少

static

首先,让我们按下图代码运行:

 

这样运行的结果为:

如果我们使用static修饰局部变量a的话,那么a会变成一个静态的局部变量:

 

这样的运行结果为:

 

当static修饰全局变量时,会使全局变量的作用域缩短至当前源文件。

extern

声明外部函数

例如:使用其他源文件的ADD函数:int ADD(...)“{...}时

可以在当前的源文件这样调用函数

extern int ADD(int int);

宏的定义

指针

  内存

像我们常用的内存,一般分为4g,8g,16g等等。

以生活中的理解来说,内存,可以比作是整个中国的占地面积,

而内存中的每一个内存单元的地址,我们可以看作是我们住的地方的每一个门牌号。

那么每个房间都有平米数,而每个内存单元也有固定的大小,为一个字节(byte)。

谈到地址,我们就要想一个问题,地址是如何产生的,又是如何编写的呢?

我们都知道,电脑分为32位和64位,这里指的位是什么呢?

32位

指的就是有32根地址线/数据线

那么便有正负之分,同样,在计算机中用二进制0和1来表示。

那么也就是

00000000000000000000000000000000

00000000000000000000000000000001

00000000000000000000000000000002

...

1111111111111111111111111111111111111

一共有 2^32 这么多种二进制序列,

而每一种二进制序列,其实就相当于一个编号,也就是每一个内存块上的地址。

一共这么多的地址,每一个地址对应一个内存块的话,一个内存块的大小是多少呢。

试想,一个内存块的大小是1个bit,那么通过计算我们得知,一个32位的机器,整个内存大小大约在0.5g左右,无法支撑我们的日常使用。

那么如果一个内存块的大小是一个字节呢,计算后,发现内存总大小在4g,这样的话还是差不多的,所以,一个内存块的大小其实就是一个字节。

由此可得,64位的机器内存总大小为8g。

指针变量

现在再想另外一个问题,比方说我们写一行代码

int a = 10; 这个a占四个字节,那我们怎么能知道,这个a在内存中占的是哪一块的地址呢,由此,我们需要使用取地址操作符&

有一种变量,是专门来存放地址的,这种变量叫指针变量

代码写法为:int* p = &a;

然后进行打印

 

 运行结果为16进制,可转化为二进制序列。

 *代表解引用操作符(int*是类型, 和 *p是不一样的)

*p 代表对p进行解引用操作,找到p所指对象a

当然,也不止int可以进行取地址和解引用操作,例如char类型

假设:char ch=‘a’;

           char* xx=&a;

           *xx=‘w’;

也是一个道理。

指针变量大小

存地址大小可以理解为,存32个bit位的二进制序列的大小,也就是说

在32位的平台上,一个指针变量的大小为4个字节。

64位为8个字节。

结构体

当我们想表示一些复杂对象时,借助int 这种类型的话还是不太好表达的,所以我们可以利用结构体,来自己创造一个类型

图例注释

 

 

第三趴结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值