gpt4 book ai didi

c++ - 将字符串分配给 char 数组

转载 作者:IT老高 更新时间:2023-10-28 21:46:24 26 4
gpt4 key购买 nike

我想知道为什么第一个语句有效,为什么不能在 c++ 中使用第二个语句

char a[10]="iqbal";  // it works

a="iqbal"; // does not work

最佳答案

严格来说,数组不是指针! 而且数组(数组的基地址)不能是可修改的左值。即它不能出现在赋值运算符的左侧。数组仅在某些情况下衰减为指针。阅读本文SO post了解数组何时衰减为指针。这里还有一个 nice article这解释了数组和指针之间的区别

另请阅读有关左值和右值的内容 here以便您了解不能出现在 =

的 LHS 上的事物

char a[10]="iqbal";  // it works

在这种情况下,内部发生的是

a[0] = 'i';
a[1] = 'q';
.
.
a[5] = '\0';

所以一切都很好,因为 array[i] 是一个可修改的左值。

a="iqbal"; // does not work

在内部,这大致相当于

0x60000(Address of a, but is a simple number here ) = Address of "iqbal"

这是错误的,因为我们不能给数字赋值。

关于c++ - 将字符串分配给 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10088661/

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