C语言指针部分知识学习
指针是C语言的一个重要概念,也是C语言的一个特色。本次我们一起来了解C语言的部分指针知识。
一、返回指针值的函数
1.定义返回指针的函数:类型名 *函数名(参数表列);
float *search(float (*pointer)[4],int n)
2.关于运算符 * 的作用
int number[3][3]={{50,60,70},{80,90,100},{110,120,130}};
int *pointer=number,pi;
pi=*pointer;
pointer存储着二维数组number的地址,pointer指向数组的第一数据50;pointer+1指向数组的第二行第一列的数据80;当进行了第三行的处理之后pi指针就从行控制转化为列控制了。pi指向指向数组的第一数据50,pi+1指向第一行第二列的数据60;
二、指针数组和多重指针
int *p[20];
int (*p)[20];
1.指针数组里储存着多个地址,每个地址的类型均相同。但要区分俩个不同的定义。第一行中定义一个指针数组其中的每一个元素都指向着一个整型数据,存储这整型数据的地址。第二行定义了一个一维数组的指针其中存放这p这个数组的首地址。
2.指向指针数据的指针变量
char **pointer;char *pi;
*pointer=pi;
定义一个二级指针pointer,pointer指向一个(char)字符型的地址相当于pi,pointer存储着pi的地址。
3.指针数组作main函数的形参
int main(int argc,char *argv)
三、动态内存分配与指向它的指针变量
全局变量存储在内存中的静态存储区,局部变量存储在内存中的动态存储区。C语言允许建立动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时释放。
建立动态分配区域
建立动态分配区域需要用到头文件stdlib.h中的malloc,calloc,realloc,free函数。
malloc 开辟动态存储区
calloc 开辟动态存储区
realloc 重新分配动态存储区
free 释放动态存储区