在了解指针函数和函数指针之前,需要对指针有一个明确的认识和作用,否则,这两个定义的作用也无法理解。
指针
什么是指针?
指针是一个变量,其值为另一个变量的地址。
即,内存位置的直接地址。就像其他变量或常量一样,必须在使用指针存储其他变量地址之前,对其进行声明
type *var-name;//申明规范
int *n;//举个例子
指针的使用
- 定义一个指针变量
*int* *addr = NULL;//申明一个指针变量
- 把变量地址赋值给指针
addr=#//把num的内存地址赋值给指针,使用&符号访问num的地址
- 访问指针变量中可用地址的值
printf(“指针可访问的值:%d \n",*addr);
指针函数(返回指针)
指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针。
return_type* function_name( parameter list );//函数声明
//申明一个指针函数
int* func(int x,int y){
static int n = x+y;
return &n;
}
int main(){
int x=10;
int y=20;
//调用func,返回 x+y 的指针
int *n = func(x, y);
//打印n的值
printf(“add %d \n”,*n);
return -1;
};
这里可以看出:指针变量和指针函数,就是在原来的变量和函数基础上,都转换成了指针,都变成了/内存地址/
函数指针(指向函数)
函数指针是指向函数的指针变量,即本质是一个指针变量。
return_type (*function_name)(parameter list)//申明规范
*function_name外面必须添加:( ),这是规定的写法~
//申明一个函数指针
void (*funcp)();
//定义一个函数
void function(){
printf(“调用了函数。。。\n”);
}
int main(){
//函数指针指向function函数,注意:没有括号,否则就是调用函数了。
funcp=function;
//调用函数指针
funcp();
}
网友评论