初学C语言----指针深入了解 :指针与函数

来源:互联网 发布:制作单页用什么软件 编辑:程序博客网 时间:2024/05/16 09:18

指针函数:顾名思义,指针的函数,虽然叫的这么高大上,然而本质上还是一个函数

如果函数的返回值,是一个指针的时候,就叫指针函数

 

 定义语法:

        类型 *函数名(参数列表){

            函数体;

        }

说到这里,要说一个概念:

 内存中有一块区域:栈区,栈区里面放的是局部变量

 有一个特点:出了作用域,作用域内的任何东西都会回收,包括指针函数返回的局部变量;当然全局变量可以用,不过要绕一圈。。

 

栈区的对面是常量区,专门存储常量的。

然而大家都知道,语言的常量不能改。所以。。。这个概念目前为止,似乎还只是鸡肋。。

 

注意:用指针函数的话,目前没什么用,C语言中的数据类型只要是局部的都是存在栈里面的。

 

用处的话:只能返回值或字符串常量地址给全局变量,还可以返回静态变量的地址。。。

 

了解就好

————————华丽丽的分割线————————

 

函数指针

函数的指针,本质上一个指针。。。

中心思想:指向函数的指针,就是一个函数指针;

我们可以定义一个指针变量保存函数的地址,那么这样的指针变量就是函数指针

 

:指针是这样定义的;

 int num = 10;

 int *p = #

 

 函数指针定义语法:

返回值类型  (*指针变量)(参数列表);

           

例:void (*pTest)(); //变量名:pTest  这个指针指向的是无返回值也无参数的函数类型

        

void (*pTest2)(int);//变量名:pTest2 这个指向的是无返回值有1int类型参数的函数。(当然,有几个返回值都可以,参照函数的概念;)

       

声明方法:直接复制函数头,把大括号去掉,把函数名用一个小括号括起来,函数名前面加一个*,函数名重新改成变量名

 

    指针变量赋值:

            语法:

                指针变量名 =函数名;

            例: pTest = test

            因为函数名本身就是一个指向自己函数的地址。。

函数名后面千万不要加()

函数名后面千万不要加()

函数名后面千万不要加()

 重要的事情说三遍!!!

 

在声明的时候初始化:

返回值类型(*指针变量名)(参数列表)=函数名;

                例:void (*pTest)() = test;

    函数指针的使用:

            1.指针变量名(参数列表);

                pTest();

                pTest2(90);

            2.(*指针变量名)(参数列表);

            例: (*pTest)();

             (*pTest2)(90);

 

 

0 0
原创粉丝点击