我看不懂这段代码?是正常的还是我没有准备好?

时间:2019-07-04 04:39:58

标签: c operators

这些是我不理解的C教程书中的示例代码的某些行。

我已经学会了 运算符,程序结构,变量,I / O,决策与循环,数组,字符串...,函数,现在在第6章中。

void check(char *a,char *b, int (*cmp)(const char *,char *)); // this one
//int cmp(char * , char *);
int main()
{
    char s1[80],s2[80];
    int (*p)(const char *,const char *); //  and this one



if(!(cmp)(a,b)) //and this

(此代码不完整)

这正常吗?我应该使用其他来源吗?

1 个答案:

答案 0 :(得分:2)

void check(char *a,char *b, int (*cmp)(const char *,char *)); // this one

这是一个需要3个参数的函数

  1. 字符指针
  2. 另一个字符指针
  3. 函数指针。有问题的函数返回一个int并以2个字符指针作为参数。

下一行

int (*p)(const char *,const char *);

这是一个函数指针p。该函数返回一个int并以2个字符指针作为参数。

if(!(cmp)(a,b))

cmp不在此处的范围内定义,但我假设此行位于函数check中。在这种情况下,您将使用参数cmpa(可能是字符指针)来调用函数b