c - 需要左值作为递增操作数

标签 c pointers

海湾合作委员会 4.4.4

我做错了什么?

char x[10];
char y[] = "Hello";
while(y != NULL)
    *x++ = *y++;

非常感谢您的任何建议。

最佳答案

x++x = x + 1 的缩写形式。但是这里的x是一个数组,不能修改数组的地址。您的变量 y 也是如此。

您可以声明一个整数 i 并递增它,然后访问数组的第 i 索引,而不是尝试递增数组。

char x[10], y[5] = "Hello";
int i = 0;
while (y[i] != 0)
{
    x[i] = *y[i];
    i++;
}
x[i] = 0;

关于c - 需要左值作为递增操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47268189/

相关文章:

c++ - 转换 "application's"内存地址

c - 尝试按地址将数组传递给函数来对数组进行排序时出现段错误 11

c++ - 如何简化检查一对数字是(1,2)还是(2,1)?

c - 限制 TCP Socket 客户端连接

c - C中字符串数组的数组

c - 程序打印不相关的字符

c - 在#define 方面需要一些帮助

C:两种数组初始化之间的差异

c - 创建 connect 4 board c 程序时出现段错误

C++ 访问二维数组指针处的值