指针基础:
指针其实就是地址。指针变量就是用来存放地址的变量,与其它变量其实没有太大的区别,只是该变量存放的是一个地址,通过该地址去进行其它操作。
指针变量的大小是固定的(视具体情况),与指向的类型无关,其指向的类型只是表明了该地址存放的数据是什么类型的。同时要知道,指针保存的只是第一个字节的地址,eg: double v=8.0; double* p=&v; v变量占8个字节,指针p不是保存了这8个字节的地址,而是只保存了第一个字节的地址,也可以说p指向了第一个v第一个字节的地址。
eg: struct stu* pst; 该语句的意思是:分配一块内存(大小为结构体的大小),pst保存stu变量的地址,但用pst只指向这个内存第一个字节。
eg: int array[5]={1,2,3,4,5,}; int* p=array; 数组名就是数组第一个元素的地址,array==&array[0],通过指针可以像数组名一样操作数组。一个特殊情况是,sizeof(array)的大小是整个数组的大小。