【问题标题】:Need Help in understanding what my book's error example means需要帮助来理解我书中错误示例的含义
【发布时间】:2022-11-28 02:56:01
【问题描述】:

所以这是代码:

#include <stdio.h>

int main() {
    char str1[] ="Hello", str2[20] ="Hi";
    char *p ="Hello", *s ="Hi";
    str1 = "Adieu";
    return 0;
}

现在我的书给出了这个理由

error, constant pointer cannot change

当我运行它时,出现以下错误:

error: assignment to expression with array type

我的问题是为什么我的书这么说?指针从哪里来的?

这本书是让我们C如果您需要参考。

【问题讨论】:

    标签: c compiler-errors


    【解决方案1】:

    问题是这个声明:

    str1 = "Adieu";
    

    在 C 中,不允许分配给数组。您只能一个一个地分配给每个元素。

    如果您的书试图告诉您 str1 是一个指针,那是不正确的。一个数组可以衰变指向其第一个元素的指针,但数组本身并不是指针。并且这种分配不会发生数组到指针的衰减。

    【讨论】:

    • @Virat 你书中给出的“理由”是错误的,没有涉及任何指针。
    猜你喜欢
    • 2015-09-16
    • 2018-09-06
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    相关资源
    最近更新 更多