小编Kai*_*ain的帖子

当函数参数与c中的const参数声明不匹配时编译的程序

我有一段这样的代码:

#include <stdio.h>

int add(const int x, const int y);

int main()
{
    printf("%d", add(9, 8));

    return 0;
}

int add(int x, int y)
{
    return x + y;
}

Run Code Online (Sandbox Code Playgroud)

我在没有 const 参数的情况下定义了它之后,使用 const 参数向前声明了函数“add”,并且当我编译它时,编译器没有给出任何抱怨。
程序的输出是: 17. 为什么会发生这种情况?

c constants function

6
推荐指数
1
解决办法
240
查看次数

使用 fflush(stdout) 和不使用它有什么不同

#include <stdio.h>

int main()
{
   printf("Hello");
   fflush(stdout);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>

int main()
{
   printf("Hello");
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

我试图了解 fflush(stdout) 的用法以及上面两个程序有什么区别?

c fflush

5
推荐指数
1
解决办法
6996
查看次数

合成析构函数是否会破坏堆上分配的内存?

我有一个没有析构函数和构造函数的类,如下所示:

class Foo {
public:
    Foo(int a) : p(new int(a)) {}

private:
    int *p;
};
Run Code Online (Sandbox Code Playgroud)
{
    Foo a(4);
}
Run Code Online (Sandbox Code Playgroud)

这段代码之后,堆上分配的内存会被释放吗?或者我是否必须显式提供这样的析构函数:

class Foo {
public:
    Foo(int a) : p(new int(a)) {}
    ~Foo();

private:
    int *p;
};

Foo::~Foo() {
    delete p;
}
Run Code Online (Sandbox Code Playgroud)

c++ destructor heap-memory dynamic-memory-allocation

4
推荐指数
1
解决办法
667
查看次数

在 C 中打印出变量名称的函数

我正在尝试创建一个函数,该函数接收一个变量并打印出它的名称

它看起来像这样

#include <stdio.h>

void print_name(int a);

int main()
{
  int a_random_name;
  print_name(a_random_name);

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

a_random_name
Run Code Online (Sandbox Code Playgroud)

我怎么能在 c 中做到这一点?

c

0
推荐指数
1
解决办法
85
查看次数