C函数原型:\\char*strinv(const-char*s)


char *strinv(const char *s); //that's the given prototype

我对字符串部分有点不安全。这是否意味着函数在调用时会自动取消引用?或者函数被定义为指针?

提前感谢您的澄清。

此函数声明

char * strinv(const char *s);

声明了一个返回类型为char *的函数。例如,函数可以为字符串动态分配内存,并返回指向该字符串的指针。

这里有一个演示程序,展示了如何定义例如函数。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char * strinv(const char *s)
{
size_t n = strlen( s );
char *t = malloc( n + 1 );
if ( t != NULL )
{
size_t i = 0;
for ( ; i != n; i++ ) t[i] = s[n-i-1];
t[i] = '';
}
return t;
}
int main(void) 
{
const char *s = "Hello Worlds!";
char *t = strinv( s );
puts( t );
free( t );
return 0;
}

程序输出为

!sdlroW olleH

指向函数的指针的声明可能看起来像那样愚蠢

char * ( *fp )( const char * ) = strinv;

要取消引用指针并调用指向的函数,可以编写

( *fp )( s );

尽管写就足够了

fp( s );

相关内容

  • 没有找到相关文章

最新更新