gpt4 book ai didi

c - 操作二维数组中的元素

转载 作者:行者123 更新时间:2023-12-02 08:53:35 25 4
gpt4 key购买 nike

我正在尝试操作二维数组中的元素

#include <stdio.h>

main()
{
char arr[][30] = {"hello", "goodbye"};
printf("%s\t%s\n",arr[0], arr[1]);
arr[0] = arr[1];
printf("%s\t%s\n",arr[0], arr[1]);
}

incompatible types when assigning to type ‘char[30]’ from type ‘char *’

我是 C 语言新手,有 OO 背景,所以我对指针的了解仍然非常基础。

我知道这可以使用指针数组来完成,但想知道如何使用二维数组执行此操作

感谢您的澄清

最佳答案

您需要使用char* arr[],因为您无法将一个数组分配给另一个数组。

但是为什么yyyy?

那么,这意味着什么?它应该复制元素吗?为此,请使用 strncpymemcpy。或者它应该以某种方式“重定向”前一个数组?这没有意义,因为数组只是内存的 block ...除了修改其内容之外,你还能用它做什么?不多!但是,您可以有一个指向该 block 的指针,并将其更改为指向其他位置。

但是数组和指针不是同一个东西吗?

不!!那为什么他们会有两个不同的名字呢? :P 数组可以衰减隐式到指针(它们的第一个元素的地址),但它们不是相同的东西!指针只是地址,而数组数据 block 。除了隐式转换之外,它们彼此没有关系。 :)

关于c - 操作二维数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6652334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com