2007
06-13

     各位前辈,我想请教一下数组指针与指针数组,函数指针与指针函数的区别与联系,在使用中如何运用,请叙说详细点,谢谢。


有事请教》有 2 条评论

  1. appleadionzm 说:

    参看论坛里的教程阿

  2. xstar 说:

    数组指针,指针函数基本上没有这两种说法

    指针,数组,函数指针,估计这样理解起来比较容易,当然函数指针也是指针的一种;
    [code]
    int a[10] ={ 0,1,2,3,4,5,6,7,8,9 };
    int b = 10;
    int *c; //指针其实就是地址,通过地址你可以访问b或a数组中的任何一个元素

    c = &a[0]; //也可以是 c = a;

    printf( "%d\n", *(c + 5) );
    [/code]
    上面需要注意的是因为指针的类型(也就是指针指向的数据的类型)是int型,这个在使用的时候需要注意.

    函数指针 是个比较特殊的指针,指向函数的指针.可以通过这个指针调用函数.
    其实函数名是个指针,所以可以把函数赋值给一个指针,又因为函数有参数,你就需要声明这个指针的参数;
    类似的
    [code]
    int max( int val1, int val2);

    int (*pmax)(int val1, int val2);//注意这里(*pmax)必须有个扩号,否则就结合律来说会先和后面的扩号结合,变成申明一个返回指针的函数了.
    [/code]
    //上面声明好指针后就可以对它赋值了.
    [code]
    pmax = max;
    pmax( 5, 6 );
    [/code]

留下一个回复