一、概念定义
1、指针即地址
计算机中所有数据必须放置内存中,不同类型的数据占用的字节数也不一样,例如32位整型int占据4个字节,64位整型long long占据8个字节,字符型char占据1个字节。
为了正确地访问这些数据,必须为每个字节都编上编号,每个字节地编号是唯一的。
把内存中字节的编号称为地址或指针。地址从0开始依次递增,对于32位环境下,程序能使用的内存位4GB,最小的地址为0,最大的地址为0xFFFFFFFF。
2、取地址
char x = 'o';
char *p = (x)的地址;
char x = 'o';
char *p = &x;
数组中p指向第一个元素的地址,a也是数组第一个元素的地址。
int a[] = {5,2,0,1,3,1,4};
int *p = a;
3、解引用
解引用是取地址的逆操作,即根据给定的地址,获取它的值。
int a;
int *p = &a;
a == *p;
4、函数返回数组
int * getRandom( )
{
static int r[10];
//......................
return r;
}
int main ()
{
// 一个指向整数的指针
int *p;
p = getRandom();
//
........................
return 0;
}