我刚开始学习指针以及它们如何作为参数传递给函数,以及它们如何与函数中的数组具有相同的效果。
现在我很好奇如何改为,在函数中返回指针,或者这是否可能?这是我的问题。我想知道如何返回一般指针。
答案 0 :(得分:0)
返回指针的原型
int* func();
float* func();
char* func();
只需根据需要定义它们。
答案 1 :(得分:0)
是的,可以从函数返回指针。
int * FunctionReturningAnInteger()
{
// this function returns integer pointer;
int *integerPointer = malloc(sizeof *integerPointer); /* memory allocation */
*integerPointer = 12;
return integerPointer;
}
char * FunctionReturningACharacter()
{
// this function returns integer pointer;
char*charPointer = malloc(sizeof *charPointer ); /* memory allocation */
*charPointer = 'a';
return charPointer ;
}
希望现在很清楚
答案 2 :(得分:0)
正如我可以从问题中推断出来的那样,你正试图从这里获得一个明显不可能的教程。你必须尝试自己的例子,最重要的是,你必须理解从函数返回指针的概念。
你可以从这些问题开始::
- 何时从函数中返回指针?
- 这些指针究竟返回了什么?
- 如何从函数中收集返回的指针?
醇>
例如,你可以编译和调试这个例子,
/* function to generate and retrun random numbers. */
int * getRandom( )
{
static int r[10];
int i;
/* set the seed */
srand( (unsigned)time( NULL ) );
for ( i = 0; i < 10; ++i)
{
r[i] = rand();
printf("%d\n", r[i] );
}
return r;
}
/* main function to call above defined function */
int main ()
{
/* a pointer to an int */
int *p;
int i;
p = getRandom();
for ( i = 0; i < 10; i++ )
{
printf("*(p + [%d]) : %d\n", i, *(p + i) );
}
return 0;
}
答案 3 :(得分:-1)
int i; /* returns a pointer to an int */ int *function1() { return &i; } char c; /* returns a pointer to a char */ char *function2() { return &c; }