为什么&如何在上面的代码中使用它?

时间:2015-10-06 15:39:11

标签: c pointers

我不太明白,这是我用C语言写的一个简单的程序。

示例1。

int main(void) {

        char * b;

        memmove((char *)&b, "saaaa", 6);
        puts((char *)&b);

        return 0;
}

这是我自己的代码, 例2。

int main(void) {


    char b[10];

    memmove(b, "baaaa", 6);
    printf("%s\n", b);

    return 0;

}

为什么在例1中使用&?当我想在scanf()中为变量赋值时,我大多使用了&符号。但是在例1中,我没有指定它。我唯一要做的就是将字符串saaaa移动到变量b。

为什么要以任何方式使用(char *)方法?

1 个答案:

答案 0 :(得分:1)

&符号运算符(&)用于变量前面以获取该变量的地址。执行&b将获得b内存中的地址。

以下是关于何时使用&符号的很好的帖子:http://git-scm.com/download/mac

希望这有帮助。

编辑:正如FatalError在评论中指出的那样,你的例子似乎已被打破。我能做的最好的事情就是指明你理解这些操作员的正确方向。