1define#定义常量和宏
(1)#define定义的标识符常量(eg:MAX=100)
(2)define定义宏--宏:带参数
eg:比较俩数大小
用函数方式表示
int Max(int x, int y)//定义函数方式
{
if(x>y)
return x;
else
return y;
}
用宏表示//定义MAX(x,y)=(x>y?x:y)
#define MAX(x,y) (x>y?x:y)//定义MAX(x,y)=(x>y?x:y)
2地址,指针
指针:从大空间-->具体小空间(603房间)
(1)地址
如何产生地址(房间号)
eg:32位 32根地址线/数据线
正电和负电
1 0
00000000 | 00000000 | 00000000 |
00000000 | 00000000 | 00000001 |
... | ||
1111111 | 11111111 | 11111111 |
用二进制表示32位一共有2^32次方个空间
若每个空间设置为bit--->总内存空间为0.5G(太小)
每个空间设置为byte--->总内存空间为4G(合适)
内存基本单位是byte字节,bit是最小的单位
打印出来的地址是十六进制的
(2)指针变量*p(用来存放地址的)
- int(整型)指针类型(指针类型是int*,指针名字是p)
int* p = &a
- char(字符)指针类型
3指针大小
无论什么类型(int/double/float...)同一平台指针大小相同
32位:一个指针大小是32个比特位=4byte
64位:一个指针大小是64个比特位=8byte
4结构体:自己创建的复杂对象
关键字struct
struct Book
{
char name[20];
short price;
};
//;表示创建结构体结束
eg:
人:名字+性别+年龄+体重...
5操作符.和->(查找)
(*abp).name// . 结构体变量.成员
abp->name// -> 结构体指针->成员
6改变结构体名字