小编Duk*_*ing的帖子

对解除引用的指针进行后递增?

试图理解C中指针的行为,我对以下内容感到有点惊讶(下面的示例代码):

#include <stdio.h>

void add_one_v1(int *our_var_ptr)
{
    *our_var_ptr = *our_var_ptr +1;
}

void add_one_v2(int *our_var_ptr)
{
    *our_var_ptr++;
}

int main()
{
    int testvar;

    testvar = 63;
    add_one_v1(&(testvar));         /* Try first version of the function */
    printf("%d\n", testvar);        /* Prints out 64                     */
    printf("@ %p\n\n", &(testvar));

    testvar = 63;
    add_one_v2(&(testvar));         /* Try first version of the function */
    printf("%d\n", testvar);        /* Prints 63 ?                       */
    printf("@ %p\n", &(testvar));   /* Address remains identical         */
}
Run Code Online (Sandbox Code Playgroud)

输出:

64
@ 0xbf84c6b0

63
@ 0xbf84c6b0 …
Run Code Online (Sandbox Code Playgroud)

c pointers operator-precedence

51
推荐指数
6
解决办法
4万
查看次数

如何有效地查找列表中的哪些元素在另一个列表中?

我想知道list_1中包含哪些元素list_2。我需要输出作为布尔值的有序列表。但我想避免for循环,因为两个列表都有超过 200 万个元素。

这就是我所拥有的并且它有效,但它太慢了:

list_1 = [0,0,1,2,0,0]
list_2 = [1,2,3,4,5,6]

booleans = []
for i in list_1:
   booleans.append(i in list_2)

# booleans = [False, False, True, True, False, False]
Run Code Online (Sandbox Code Playgroud)

我可以拆分列表并使用多线程,但如果可能的话,我更喜欢更简单的解决方案。我知道像 sum() 这样的一些函数使用向量运算。我正在寻找类似的东西。

如何让我的代码更加高效?

python for-loop list vectorization

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

比较两个对象并检查null

JDK中是否有一个方法可以比较两个对象的相等性,从而计算空值?像这样的东西:

public static boolean equals(Object o1, Object o2)
{
    if (o1 == null)
    {
        return o2 == null; // Two nulls are considered equal
    }
    else if (o2 == null)
    {
        return false;
    }

    return o1.equals(o2);
}
Run Code Online (Sandbox Code Playgroud)

自己编写这个方法似乎很愚蠢,因为我认为它必须已经存在于某个地方.

java comparison null equals

43
推荐指数
4
解决办法
3万
查看次数

为什么这个Scala代码在参数中赋值为val?

object Main {

  def main(args: Array[String])
  {
    val x = 10
    print(x="Hello World")
    print(x)
  }
}
Run Code Online (Sandbox Code Playgroud)

输出:Hello World10

我们知道,在Scala val中,无法重新分配或更改,但这里x正在改变

你好,世界

打印时.

scala

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

为什么int指针'++'增加4而不是1?

指针的值是变量的地址.为什么int pointerint指针增加1后增加4个字节的值.

在我看来,我认为指针(变量的地址)的值仅在指针递增后增加1个字节.

测试代码:

int a = 1, *ptr;
ptr = &a;
printf("0x%X\n", ptr);
ptr++;
printf("0x%X\n", ptr);
Run Code Online (Sandbox Code Playgroud)

预期产量:

0xBF8D63B8
0xBF8D63B9
Run Code Online (Sandbox Code Playgroud)

实际输出:

0xBF8D63B8
0xBF8D63BC
Run Code Online (Sandbox Code Playgroud)

编辑:

另一个问题 - 如何访问4个字节并int逐个占用?

c c++ pointers

42
推荐指数
3
解决办法
3万
查看次数

如何在共享主机上关闭魔术引号?

我想关掉PHP的魔术引号.我无法访问php.ini.

当我尝试添加php_flag magic_quotes_gpc off到我的.htaccess文件时,我收到500内部服务器错误.这是我的.htaccess文件的样子:

AddType x-mapp-php5 .php
php_flag magic_quotes_gpc off
Run Code Online (Sandbox Code Playgroud)

然后我尝试使用ini_set('magic_quotes_gpc', 'O'),但这没有效果.

如何关闭魔术报价?

php magic-quotes-gpc

41
推荐指数
5
解决办法
13万
查看次数

如何更好地检查两个 char 变量是否在某些值集中?

最近,我们的教授要求我们使用两个char变量(天)来接收用户的输入。

下面的代码可以很好地作为检查,以确保 Mo、Tu、We、Th、Fr、Sa、Su 是仅有的两个作为一对一起输入的字符。如果接收到其他任何内容作为输入,它将循环并要求用户提供有效输入。

输入应该不区分大小写,这意味着,例如,"mO"并且"tu"是可以接受的。似乎有很多重复正在发生。有没有办法清理这个?

cout << "Please enter the day of the week did you made the long distance call (Mo Tu We Th Fr Sa Su): ";
cin >> dayOne >> dayTwo;

while ((dayOne != 'M' && dayOne != 'm' || dayTwo != 'O' && dayTwo != 'o') &&
       (dayOne != 'T' && dayOne != 't' || dayTwo != 'U' && dayTwo != 'u') &&
       (dayOne != 'W' && dayOne != 'w' …
Run Code Online (Sandbox Code Playgroud)

c++

41
推荐指数
5
解决办法
2350
查看次数

什么是另一种方法中的方法?

String dgvValue(int cell)下面的代码是什么类型的方法?

private void btnEdit_Click(object sender, EventArgs e)
{
    if (dgvGuestList.SelectedRows.Count > 0)
    {
        String dgvValue(int cell)
        {
            return dgvGuestList.SelectedRows[0].Cells[cell].Value.ToString();
        }
        
        editGuest editGuest = new editGuest(int.Parse(dgvValue(0)), dgvValue(1), 
        int.Parse(dgvValue(2)), dgvValue(0), dgvValue(0), dgvValue(0), dgvValue(0));
        editGuest.ShowDialog();
    }
    else
    {
        DialogResult error = MessageBox.Show("No row selected.", "Error", MessageBoxButtons.OK, 
        MessageBoxIcon.Exclamation);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# methods

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

为什么这个转到这个开关里面不起作用?

对于这个程序:

class Program
{
    static void Main(string[] args)
    {
        var state = States.One;
        switch (state)
        {
            case States.One:
                Console.WriteLine("One");
                break;
            case States.Zero:
                goto case States.One;
        }
    }
}

public enum States : ulong
{
    Zero = 0,
    One = 1,
}
Run Code Online (Sandbox Code Playgroud)

我有:

"switch表达式或case标签必须是bool,char,string,integral,enum或相应的可空类型"

state变量是enum类型.如果我评论该goto case行,错误就会消失.

我正在使用VS 2013. + .NET 4.5.1.

c# switch-statement

38
推荐指数
2
解决办法
2686
查看次数

有没有一种简单的方法让pow服务https?

pow很棒,但是我的应用程序中的很多东西都假设是https,通过它们并添加"if not dev environment"会很痛苦.是否可以让pow服务https?

ssl https rack ruby-on-rails rack-pow

36
推荐指数
5
解决办法
7339
查看次数