c 语言指针的用法 (1)
时间:2011-05-21 来源:b0b0
#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