标签: programming-languages

递归后函数如何执行操作?

我知道递归是一种在函数本身内调用函数的技术.但是下面的代码让我对cout第一次递归后如何能够完成该部分感到困惑:

(此代码解决了河内难题塔)

#include <iostream>
using namespace std;

void move_rings(int n, int src, int dest, int other); 

int main(void) 
{
    int rings;                      
    cout << "Number of Rings: ";   
    cin >> rings;
    move_rings(rings, 1, 3, 2);   

    system("PAUSE");
}

void move_rings(int rings, int source, int destination, int other)
{
     if (rings == 1)
     {
        cout << "Move from " << source << " to " << destination << endl;
     }
     else    
     {
         move_rings(rings - 1, source, other, destination);
         cout << "Move …
Run Code Online (Sandbox Code Playgroud)

c++ recursion computer-science programming-languages

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

将'defined'与'ifdef'一起使用?

考虑下面的代码:

#ifdef AAA && (defined BBB)
...
#endif
Run Code Online (Sandbox Code Playgroud)

gcc-4.5.2在这条线上抱怨:

#ifdef指令末尾的额外令牌.

它是非法的结合ifdefdefined

谢谢!

c programming-languages

4
推荐指数
2
解决办法
569
查看次数

编程语言中的空语句是否为汇编程序中的C,Java,... no-op?

几天前,我看到for ( ; ; )了无限循环的结果.这让我对两件事感到好奇.

  1. 是汇编程序中的空语句(;)no-op
  2. 为什么在上面给出的例子中它被评估为"真实"?

programming-languages

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

为什么边界检查没有在某些语言中实现?

根据维基百科(http://en.wikipedia.org/wiki/Buffer_overflow)

通常与缓冲区溢出相关的编程语言包括C和C++,它们不提供内置保护以防止访问或覆盖内存的任何部分中的数据,也不会自动检查写入数组的数据(内置缓冲区类型)是否在该数组的边界.边界检查可以防止缓冲区溢出.

那么,为什么'Bounds Checking'没有在C和C++等语言中实现呢?

implementation programming-languages buffer-overflow

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

PL/SQL的替代品?是否有其他编程语言/ IDE组合为(Oracle)SQL查询提供自动完成和语法验证?

我正在寻找PL/SQL的替代品.PL/SQL充其量是平庸的,但在撰写以Oracle数据库为中心的脚本时,我还没有发现任何与其生产力相匹配的东西.

那么,有没有其他编程语言提供以下任何功能?

  • 本机处理SQL查询(SQL被视为代码,而不是字符串).
  • 表和列名称的自动完成功能.
  • SQL在编译时针对DB进行验证.

*编辑:我非常了解并使用提供自动完成功能的SQL和PL/SQL IDE.我只是想知道是否存在任何其他编程语言,它允许您以类似于PL/SQL的方式混合SQL和代码.

sql oracle plsql programming-languages autocomplete

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

Null是类型对象,所以它是真的吗?幕后发生了什么?

我正在阅读我的书"优雅的JavaScript",null == true评价为假.使用口译员,我已经证实了这一点TRUE.但是,在本章的后面 - 实际上,在同一页面上 - ,它表示当作为if,while或for语句的条件给出null时,它将被转换为布尔值并返回false.

任何有更深入洞察力的人都可以告诉我为什么会这样吗?我知道在哪里可以找到浏览器源代码,但我不知道如何定位导致这种特殊和不正常行为的编程.因为我对C++知之甚少,所以我也很欣赏任何有关如此独立查找信息的提示.

谢谢.

javascript c++ types programming-languages type-conversion

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

Scala不处理':'函数的非显式类型闭包

所以基本上我想编写一个可以像这样编写的函数:

{ println(_) } =: thing
Run Code Online (Sandbox Code Playgroud)

在这里,我希望它真正做到thing.=:(println(_)).让我们说为了=:具有以下实现的论证:

def =:(block : Int => Any) {
    block(5)
}
Run Code Online (Sandbox Code Playgroud)

所以我试着用上面的方式调用它然后得到:

<console>:10: error: type mismatch;
   found   : Unit
   required: Int => Any
             println(_) =: thing
Run Code Online (Sandbox Code Playgroud)

然后我尝试这样做:

thing.=:(println(_))
Run Code Online (Sandbox Code Playgroud)

这样我就可以很好地5打印到终端了.然后我尝试了这个:

{ value => println(value) } =: thing
Run Code Online (Sandbox Code Playgroud)

这又失败了,告诉我有一个"缺少参数类型".我猜这是因为Scala尝试在这种情况下首先解析/编译函数参数,并且不会像它那样猜测类型(我在这里完全猜测),当它被称为更传统的方式时(使用点运算符).

任何人都可以更多地了解这里的问题,也可能建议一个最接近我原定目标的方法吗?

PS对这个标题抱歉.一旦我对问题有了更好的理解,我就会重命名.

compiler-construction types programming-languages functional-programming scala

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

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

可以用C或C++编写HTML表单

我使用PHP,我知道PHP是用C语言编写的,或者以某种方式使用C语言.我正在尝试理解低级语言.那么有人可以向我解释PHP生成的HTML(假设表单的标记)是如何用C构建的.我可以用C或C++构建Web表单吗?

php c c++ programming-languages

4
推荐指数
2
解决办法
1326
查看次数

Vb.net委托是强类型/为什么编译器接受这个'松散类型'委托?

我正在学习VB.NET中的代理,并对委托类型感到困惑.在阅读有关委托的内容时,我了解到委托是一种数据类型,可以引用具有特定签名的方法.因此,与String可以引用字符的方式相同,委托可以引用一个方法(例如),该方法将整数作为输入并返回一个整数作为输出.但在与代表们玩耍时,我发现事实并非如此.下面的代码编译并运行 - 即使我不服从我的委托签名中的'输入'.我糊涂了.我错过了什么吗?

Public Delegate Function myDelegate(ByVal i As Integer) As Integer' int in, rtrn int

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim md As myDelegate  'should be of type int in, rtrn int
    md = New myDelegate(AddressOf squared) 'allows assign to string in, string out
    MsgBox(md("3")) 
End Sub

Private Function squared(ByVal i As String) As String
    Return i * i
End Function
Run Code Online (Sandbox Code Playgroud)

vb.net delegates programming-languages

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