c 语言指针的用法 (1)

#include<stdio.h>
/*定义函数指针类型*/
typedef void (*func_t)(int);
void show(int);
int main(int argc, char *argv[])
{
    /*NULL 的指针地址*/
    int * a=100;
    void * p=NULL;
    printf("NULL=%p\n",p);
    /*p指向int 类型的地址*/
    p=&a;
    /*直接读取指针的地址*/
    printf("p=%p\n",p);

    /*取出指针的真实类型地址*/
    printf("p=%p\n",(int*)p);

    /*取出指针的值*/
    printf("p=%d\n",*((int*)p));

    /*解释为char*取出指针的值*/
    printf("p=%s\n",*((char*)p));

     /*把函数的地址赋给 p*/
     p=&show;

     /*利用p调用函数*/
     ((func_t)p)(100);

    return 0;
}
/*函数实现*/
void show(int a)
{
    printf("-----function:%s------\n","show");
    printf("a=%d\n",a);
}

 

输出结果:

NULL=0000
p=FFCC
p=FFCC
p=100
p=am termination
h
-----function:show------
a=100

posted @ 2011-05-21 17:05  b0b0  阅读(321)  评论(0编辑  收藏  举报