1

我需要创建这个函数:

void lpLoadFileFunc(int (*loadFile)(char *filename, FILE **file))

为此,我必须首先创建此函数:

int loadFile (char *filename, FILE **file))

如果加载成功,这个函数应该上传一个文件并返回。

但我不明白为什么要使用双指针。

你能帮我吗?

4

1 回答 1

1

C 是按值传递。当您将变量传递给函数时,它会被复制,并且该副本的更改不会更改原始变量。但是,您可以传递变量的地址,该函数将获得指向该变量的指针,这使您能够更改它。不要忘记指针仍然是变量,如果要更改指针,则需要双指针。

void Test( int value , int* pointer )
{
    value = 1 ;
    *pointer = 1 ;
}

int one = 0 ;
int two = 0 ;

Test( one , &two ) ;

printf( "%d %d\n" , one , two ) ;

如您所见,one没有改变。

于 2015-04-23T15:38:10.603 回答