鱼C论坛

 找回密码
 立即注册
查看: 1291|回复: 4

关于数组的问题

[复制链接]
发表于 2023-9-23 17:55:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
数组可以这样使用的吗?数组还可以赋值一个指针变量吗?
微信图片_20230923175320.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-23 17:55:43 | 显示全部楼层
数组是一种存储同种类型数据元素的集合,可以通过下标来访问和操作数组中的元素。

对于第一个问题,如果是指定义数组时指定了具体的元素值,例如int arr[] = {1, 2, 3};那么这个数组是可以直接使用的。但是如果是定义了一个空的数组,例如int arr[3];那么这个数组需要初始化后才能使用,否则里面的元素值是不确定的。

对于第二个问题,数组名本身就是一个指针常量,它存储的是数组首元素的地址。因此,可以将一个指针变量赋值为数组名,例如int arr[3]; int *p = arr;这样p指向的就是数组arr的首元素。但是反过来,不能将一个数组名赋值为一个指针变量,因为数组名是一个常量,不能被修改。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-23 17:55:48 | 显示全部楼层
数组在很多编程语言中都是一种非常常见的数据结构,可以用于存储同一类型的一组数据,并通过索引进行访问。在 Python 中,虽然有类似数组的数据类型,如列表(list)、元组(tuple)和 NumPy 数组(numpy.array),但内部实现与传统的数组有所不同。

对于你的第一个问题,我不清楚你具体指的是否是 Python 中的列表,如果是,那么列表确实可以像数组一样进行使用。例如,你可以创建一个包含多个整数的列表,并通过索引来访问其中的元素:
my_list = [1, 2, 3, 4, 5]
print(my_list[2])   # 输出:3

对于你的第二个问题,如果是在 C 或 C++ 中,数组名本身就是一个指向数组首元素的指针,因此可以将数组赋值给指针变量。但在 Python 中,列表没有这样的指针属性,因此不能直接将列表赋值给指针变量。但是,你可以使用NumPy 数组来替代列表,并且可以将NumPy 数组赋值给指针变量。例如:
import numpy as np
arr = np.array([1, 2, 3, 4])
ptr = arr.ctypes.data
print(ptr)   # 输出:140487601086080

在上面的代码中,我们使用了NumPy数组创建了一个包含多个整数的数组,并通过 ctypes.data 属性获取了数组的内存地址,将其赋值给了一个指针变量 ptr

需要注意的是,在 Python 中使用 NumPy 数组时,需要先安装NumPy库,并使用 import 命令将其导入到程序中。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-26 22:57:13 | 显示全部楼层
数组名好像可以理解为指针吧,给他赋值一个地址也挺合理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-30 22:27:53 | 显示全部楼层
楼上回答的,数组名就是指针或者是指针常量的,都是错误的说法,不接受任何反驳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 22:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表