C:带负号的递归函数调用

时间:2014-10-10 05:01:50

标签: c recursion

在前面使用负号调用函数的结果是什么?是否将返回值变为负数?

int someFunction(int newBoard[9], int aValue) {

    for(i = 0; i < 9; ++i) {
        if(newBoard[i] == 0) {
            newBoard[i] = player;
            int thisScore = -someFunction(newBoard, aValue*-1); 
            // why this function being called with a negative sign?   Is to turn the return value into negative?
        }
    }
  return someValue
}

2 个答案:

答案 0 :(得分:1)

是的,这是正确的,因为someFunction返回一个整数,在前面放一个' - '否定结果

e.g. int n = 1;
     printf( "%d", -n );
     ...
     -1

如何在您的上下文中使用它更难以猜测,因为您没有在您的问题中提供太多上下文。

答案 1 :(得分:1)

ya ...返回值在变量-中存储为thisScore ve值。

试试这段代码......这可能会让你明白疑问

 #include<stdio.h>

 int fun(void)
  {
   return 20;
  }

  main()
  {
    int a=- fun();
    printf("%d\n",a);
  }