我是 prolog 的新手。我了解到,虽然它是一种声明性语言,但 prolog 可以用作通用编程语言,就像 C 一样。因此,无论您可以在 C 中解决什么问题,您也可以在 prolog 中解决,即使它运行 -时间可能不会那么好。由于序言中没有指针(据我所知),我想知道我是否可以在序言中为以下用 C 编写的代码编写等效程序:-
#include <stdio.h>
int main()
{
int a = 5;
int *p;
p = &a;
printf("The address of a is %d.", p);
return 0;
}
最佳答案
使用一个流行的类比,您正在尝试使用 Screwdriver 钉入钉子。 Prolog 不是 C,在 Prolog 中解决问题与在 C 中解决问题有着根本的不同。
打印变量的值很容易,例如:
main :-
X = 5,
io:format("X = ~w~n", [X]).
但是您不能像在 C 中那样获取 X 的地址。您为什么要这样做?下次地址可能会不同,因为 Prolog 具有自动垃圾收集功能。
如果你想学习 Prolog,请忘记尝试编写看起来像 C 程序的 Prolog 程序,而是尝试解决实际问题。例如,您可以尝试 Project Euler 系列问题。
关于c - 如何在 Prolog 中用指针实现 C 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533011/