我有一段这样的代码:
#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. 为什么会发生这种情况?
#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) 的用法以及上面两个程序有什么区别?
我有一个没有析构函数和构造函数的类,如下所示:
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) 我正在尝试创建一个函数,该函数接收一个变量并打印出它的名称
它看起来像这样
#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 中做到这一点?