小编Sor*_*rin的帖子

Java RegEx负面的lookbehind

我有以下Java代码:

Pattern pat = Pattern.compile("(?<!function )\\w+");
Matcher mat = pat.matcher("function example");
System.out.println(mat.find());
Run Code Online (Sandbox Code Playgroud)

为什么mat.find()回归真实?我使用了负面的lookbehind,example之前是function.不应该被丢弃吗?

java regex regex-lookarounds

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

SQL*Plus 中的“@”有什么作用

我在 sql 代码中找到了这一行:

@../../sql_scripts/create_tables.sql
Run Code Online (Sandbox Code Playgroud)

它有什么作用?我知道这@@file.sql意味着 file.sql 正在运行,并且@可以在我们以后想要提供参数值时使用,但在这里我@后面跟了一个文件名。我知道有一个类似的问题,但它只涵盖@查询。

sql oracle sqlplus

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

fork for for循环后计算进程

我有以下代码:

for(i=1; i<=2; i++)
{
    fork();
    printf("x ");   
}
Run Code Online (Sandbox Code Playgroud)

我计算出x应打印6次:第一次迭代两次,第二次迭代4次.

相反,X被打印8次.为什么?

c linux fork

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

在PL/SQL中加倍'at'符号

我知道@符号后跟一个路径意味着在PL/SQL中执行该脚本.@@路径后面是什么意思?

oracle sqlplus

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

将int转换为char*时的奇怪输出

我有一个int,我想获得一个包含该int的char*.我的代码是:

int getLength(int x) {
    int l = 0;
    while(x) {
        l++;
        x /= 10;
    }
    return l;
}

char* toString(int x) {
    int l = getLength(x);
    char *str = new char[l];
    l--; // the digits will be placed on positions 0 to l-1
    while(l >= 0) {
        str[l] = x % 10 + '0';
        x /= 10;
        l--;
    }
    return str;
}
Run Code Online (Sandbox Code Playgroud)

一些结果:

toString(1009) = 1009Ä
toString(23) = 23L
Run Code Online (Sandbox Code Playgroud)

为什么?我只为l个字符分配空间.(l = int的长度)

c c++ string pointers

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

用Java传递的参数

我在类中有一个Long对象,我给它一个值,然后我将它传递给另一个类的构造函数,在那里它被更改.为什么第一个对象中的变化不可见?

代码:

public class ClassA {
    private Long t;

    public ClassA() {
        t = new Long(10);
        System.out.println(t); // prints 10
        new ClassB(t); // it is modified (see ClassB)
        System.out.println(t); // prints 10 again
    }

    public static void main(String[] args) {
        new ClassA();
    }
}

class ClassB {
    private Long p;

    public ClassB(Long p) {
        this.p = p;
        this.p = this.p + 1;
        System.out.println(this.p); // prints 11
    }
}
Run Code Online (Sandbox Code Playgroud)

输出为:10 11 10 Long变量在ClassA中初始化.然后我将它传递给ClassB,修改它,并清楚地看到更改在第一堂课中不可见.为什么?

java parameter-passing

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

C中的无限循环行为

我有以下代码:

#include<stdio.h>
int main(){
    int a = 1, b = 8;
    while(a != b)
    {
        printf("asd");
        fflush(stdout);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

很明显,该计划永远不会停止.但为什么"asd"根本没有打印?

编辑:这是完整的程序.没有任何其他线路.我第一次使用Eclipse和MinGW并且它没有打印任何东西.我在linux中尝试使用gcc,它按预期工作,即使没有fflush!因此,这种行为可能是由于某些编译器优化代码并修改无限循环这一事实造成的.

c infinite-loop

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

提供命名函数时,函数不起作用

我不知道为什么这两个代码片段不会产生相同的结果.在第一个例子中,我创建了一个函数并传递它,在第二个例子中,我编写了一个匿名函数.

 function funct() {
        $("p").slideUp(1000);
 }
 $(document).ready(funct());

 $(document).ready(function() {
        $("p").slideUp(1000);
 });
Run Code Online (Sandbox Code Playgroud)

第二个有效,第一个没有.有人可以告诉我为什么吗?

jquery anonymous-function

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