数组赋值的问题

本文探讨了C++与C语言中数组与指针的不同使用方式及限制,详细解释了为什么不能直接将字符串赋值给数组变量,并区分了指针变量与数组名在内存中的不同行为。
但 用指针
  char *p=NULL;
  p="computer";
可以。
 
 
char a[3];   a[3]="oq";  error: invalid conversion from `const char*' to `char'|
 
a[3]是char 而“oq”是char*,不能赋值
 ---------------------------------------------------------------
  char a[3];
  a="oq"; 
在c++中|error: ISO C++ forbids assignment of arrays| 
 
在c中   error: incompatible types in assignment|
 
数组不能赋值,因为a是常量地址也就是不能当左值
char* p中的p 不完全等同与 char a[] 中的 a
p是变量指针,a是常量指针
 

 

 

转载于:https://www.cnblogs.com/newhcw/p/3527602.html

在编程中,数组是一种常见的数据结构,用于存储一组有序的元素。不同语言中的数组赋值操作略有差异,但核心思想类似。以下是一些常见语言中数组赋值的基本方法和注意事项。 ### Python 中的数组赋值 Python 中通常使用列表(list)来实现数组功能。定义并赋值一个数组非常简单: ```python arr = [1, 2, 3] # 直接定义并赋值 ``` 此外,可以通过索引逐个赋值: ```python arr = [0] * 3 # 初始化一个长度为3的数组,所有元素初始化为0 arr[0] = 1 arr[1] = 2 arr[2] = 3 ``` 如果需要复制数组,需要注意浅拷贝与深拷贝的区别。直接使用等号赋值会创建引用,而不是生成新数组: ```python a = [1, 2, 3] b = a # b 是 a 的引用 b[0] = 99 print(a) # 输出 [99, 2, 3] ``` 如需独立副本,可使用 `copy` 模块: ```python import copy a = [1, 2, 3] b = copy.deepcopy(a) ``` ### PHP 中的数组赋值 PHP 中数组是通过 `array()` 或 `[]` 来定义的,并且可以动态赋值: ```php $arr = array(1, 2, 3); // 使用 array() 定义数组 ``` 也可以通过索引逐个赋值: ```php $arr = []; $arr[0] = 1; $arr[1] = 2; $arr[2] = 3; ``` PHP 支持关联数组,允许使用字符串作为键名: ```php $arr['first'] = 'one'; $arr['second'] = 'two'; ``` 数组赋值时,若涉及多维数组或对象数组,应考虑使用深拷贝以避免引用问题[^2]。 ### JavaScript 中的对象数组赋值 JavaScript 中数组同样支持多种赋值方式,尤其在处理对象数组时需要注意是否进行深拷贝: ```javascript let arr = [1, 2, 3]; ``` 对于对象数组,建议使用对象解构或构造新对象以避免引用冲突: ```javascript function getNewData(data) { let firstData = []; for (let i = 0; i < data.length; i++) { let obj = {}; obj.index = data[i].index; obj.stationName = data[i].stationName; obj.temp = data[i].temp; firstData.push(obj); } return firstData; } ``` 上述方式确保了每个对象属性被独立复制,从而避免原始数据修改影响新数组内容[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值