一些指针代码

时间:2016-03-14 20:08:44

标签: c pointers

代码需要向函数发送一个int 必须发送只是int 并在函数后显示更改。所以我试过了:

for (Long id : ids) {
    Statement stmt;
    ResultSet rs;
    try {
        st = connection.createStatement();
        rs = stmt.executeQuery("...");

        if (rs.next()) {
            Long ft = rs.getLong("followedThem");
            rs.close();
            st.close();

            st = connection.createStatement();
            String sql = "...";

            if (ft != null && ft == -1) {
                sql = x;
            } else {
                sql = y;
            }

            st.executeUpdate(sql);
            st.close();
        } catch (SQLException e) {}
    }
}

它打印的数字相同,根本不会改变。帮助

2 个答案:

答案 0 :(得分:3)

您必须将参数作为指针传递

void inc(int *px)
{
    *px= *px+1;
}

在您的代码中,您只是修改x

的本地副本的函数

答案 1 :(得分:0)

一个非常可怕的黑客攻击:

inc((int)&number);

// ...

void inc(int n)
{
    ++*(int*)n;
}

不要这样做。除了某些古老的架构之外,它不会工作。