你可以取消引用函数内的char指针吗?

时间:2014-06-16 18:36:18

标签: c pointers

我正在尝试将char指针引用到函数内的char数组:

void getword(char *word)
{
    *word = "bar";
}


int main()
{
    char defword[4] = "foo";
    getword(defword);

    printf("%s\n", defword);

    return 0;
}

我希望得到“bar”作为输出但我似乎得到完全无关的字符串'1oo'。

1 个答案:

答案 0 :(得分:5)

解除引用的char *的类型是char - 原始值类型。在这种情况下,*wordword[0]相同。

"bar"的类型是const char * - 指针类型。

您正在为字符指定指针的值。我怀疑你的编译器是否会在没有大声喧哗的情况下发生这种情况。

无论如何,请查看strcpy。撇开这一切可怕的不安全,这将更好地工作:

strcpy(word, "bar");