小编Eri*_*ang的帖子

为什么"a +++++ b"不能用gcc编译,但"a +++ b","a ++ + ++ b"和"a +++ ++ b"可以?

可能重复:
请帮我理解C中的错误a +++++ b

这是示例代码,为什么"a +++++ b"无法编译,但其他人可以?

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    int a = 0;
    int b = 0;
    int c = 0;
    c = a+++b;
    printf("a+++b is: %d\n", c);

    c = a = b = 0;
    c = a++ + ++b;
    printf("a++ + ++b is: %d\n", c);

    c = b = a = 0;
    c = a+++ ++b;
    printf("a+++ ++b is: %d\n", c);

    c = b = a = 0;
    c = a+++++b; …
Run Code Online (Sandbox Code Playgroud)

c gcc operators

5
推荐指数
3
解决办法
911
查看次数

用C语言递归声明函数

从adream307得到一个问题,我不知道,你呢?

我想声明一个这样的函数:(我们将这种类型的函数命名为F)

  1. F的返回类型是"无效"
  2. F的参数是一个函数指针,该指针指向一个类型与F相同的函数

我可以声明这样的函数吗?

c recursion compilation function declare

3
推荐指数
1
解决办法
231
查看次数

如果只在C中声明int [3],为什么2 [a]可以通过编译

如果只在C中声明int [3],为什么可以编译2 [a].

 1  #include <stdio.h>
 2
 3  int main(int argc, char **argv)
 4  {
 5      int a[3] = {1, 2, 3};
 6      printf("a[2] is: %d\n", a[2]);
 7      printf("2[a] is: %d\n", 2[a]);
 8
 9      return 0;
10  }
Run Code Online (Sandbox Code Playgroud)

而输出3,如何解释呢?

c arrays gcc pointers

2
推荐指数
1
解决办法
109
查看次数

标签 统计

c ×3

gcc ×2

arrays ×1

compilation ×1

declare ×1

function ×1

operators ×1

pointers ×1

recursion ×1