[求助]有人能详细给我讲解指向函数的指针吗? int *fn(int *p,int n); 这函数的返回值是个指针值,也就是地址!~请问 里面的参数就可以返回指针值了(*p),为什么要*fn???????????
很容易理解,说明此函数返回的是一个整型指针,其实就是一个地址,他往往用来开辟自定义数据类型的空间,EG:
typedef struct /* 自定义按钮数据类型 */
{
int x; /* 按钮显示位置 */
int y;
int text_x; /* 文字显示的位置 */
int text_y;
int width; /* 记录资源图片的宽高 */
int height;
char *name; /* 按钮的名字 */
char **name_bmp; /* 3张资源图片名的指针 */
char *name_board; /* 快捷键名,为NULL表示无快捷键 */
int key_board; /* 记录对应快捷键名的快捷键值 */
char key_show; /* 标记按钮是否隐藏 */
char key_mark; /* 标记控件是否卸载 */
char key_way; /* 标记按钮的方式,1,2, 3 */
char key_bmp; /* 用于方式 2 */
BITMAP *botton; /* 保存被按钮覆盖的区域,以便卸载按钮恢复原背景 */
} SJ_botton_T;
SJ_botton_T *SJ_create_botton(int x, int y, char *name, char *name_bmp[], char *key_board, char key_way);
我们来使用一下
void main(void)
{
SJ_botton_T *boot;
boot = SJ_create_botton(.....);
}
看这样函数SJ_create_botton()返回的就是一个指针,其实他就为 boot指定了开辟的空间,好让boot在后面内使用。这也是指针的奥妙,自己在时间中慢慢去体会吧