1define#定义常量和宏

(1)#define定义的标识符常量(eg:MAX=100)

C语言程序设计入门教程4_十六进制

(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)

C语言程序设计入门教程4_#define_02

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是最小的单位

C语言程序设计入门教程4_内存空间_03

打印出来的地址是十六进制的

(2)指针变量*p(用来存放地址的)

  • int(整型)指针类型(指针类型是int*,指针名字是p)
int* p = &a

C语言程序设计入门教程4_内存空间_04

  • char(字符)指针类型

C语言程序设计入门教程4_十六进制_05

3指针大小

无论什么类型(int/double/float...)同一平台指针大小相同

32位:一个指针大小是32个比特位=4byte

C语言程序设计入门教程4_十六进制_06

64位:一个指针大小是64个比特位=8byte

C语言程序设计入门教程4_C语言程序设计教程笔记_07

4结构体:自己创建的复杂对象

关键字struct

struct Book
{
	char name[20];
	short price;
};
//;表示创建结构体结束

eg:

人:名字+性别+年龄+体重...

C语言程序设计入门教程4_内存空间_08

5操作符.和->(查找)

(*abp).name// . 结构体变量.成员
abp->name// -> 结构体指针->成员

C语言程序设计入门教程4_内存空间_09

6改变结构体名字

C语言程序设计入门教程4_内存空间_10