条件编译
指针
指针的常见用法
int a = 100;
int b = 200;
int *p = NULL;
int *q = NULL;
p = &a;
q = &b;
假设a的地址为0x0000 0001,b的地址为0x0000 0005,p指向a,q指向b
含义 | a | b | p | q | *p | *q | |
---|---|---|---|---|---|---|---|
p = &b | 让p指向b的地址空间 | 100 | 200 | 0x0000 0005 | 0x0000 0005 | 200 | 200 |
*p = b | 将b的值赋给p所指向的地址空间(a的地址),改变了a的值,但没有改变p的指向,p还是指向a | 200 | 200 | 0x0000 0001 | 0x0000 0005 | 200 | 200 |
p = q | 将q指向的地址赋给指针p(p从指向a变为指向b) | 100 | 200 | 0x0000 0005 | 0x0000 0005 | 200 | 200 |
*p = *q | 将q指向地址空间的值赋给p指向地址空间a,只改变a的值,与*p=b等价 | 200 | 200 | 0x0000 0001 | 0x0000 0005 | 200 | 200 |