鱼C论坛

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

[已解决]C语言中关于数组定义

[复制链接]
发表于 2021-3-2 09:42:09 | 显示全部楼层 |阅读模式

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

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

x
C语言中不允许对数组的大小做动态定义,为什么在被调用的函数中定义数组可以是变量呢?
最佳答案
2021-3-2 11:01:35
C语言中数组在编译时就已经为分配好了内存空间,如定义int num[n],这个n你可以在数组定义之前对它随意赋值(一般是宏定义),但在编译时就已经是一个确定的数字了,不会改变了,即n=10相当于定义了一个int型长度为10的数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-2 09:45:31 | 显示全部楼层
变量意味着数组中的元素可以被修改
但是数组大小在定义之初就是固定的
变量的大小固定没有必然联系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-2 09:48:28 From FishC Mobile | 显示全部楼层
举个例子吧,如果数组降为指针,那么它只是一个地址,数据多少和它没关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-2 10:14:35 | 显示全部楼层
昨非 发表于 2021-3-2 09:45
变量意味着数组中的元素可以被修改
但是数组大小在定义之初就是固定的
变量的大小固定没有必然联系

不好意思,没太明白,函数调用中数组的长度可以是变量这里还是不明白。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-2 10:16:28 | 显示全部楼层
wp231957 发表于 2021-3-2 09:48
举个例子吧,如果数组降为指针,那么它只是一个地址,数据多少和它没关系

不好意思,没太明白,如果没降为指针呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-2 10:21:11 | 显示全部楼层
哒哒哒加油哦 发表于 2021-3-2 10:16
不好意思,没太明白,如果没降为指针呢?

意思就是:箱子的大小是固定的,但是装什么是可以修改的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-2 10:23:53 | 显示全部楼层
昨非 发表于 2021-3-2 10:21
意思就是:箱子的大小是固定的,但是装什么是可以修改的

但是在被调用的函数中定义数组,他的长度可以是变量,那么不就是箱子大小也可以变得吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-2 10:32:11 From FishC Mobile | 显示全部楼层
哒哒哒加油哦 发表于 2021-3-2 10:23
但是在被调用的函数中定义数组,他的长度可以是变量,那么不就是箱子大小也可以变得吗?

不可以,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-2 10:35:25 | 显示全部楼层

为什么呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-2 10:36:19 | 显示全部楼层
哒哒哒加油哦 发表于 2021-3-2 10:14
不好意思,没太明白,函数调用中数组的长度可以是变量这里还是不明白。

我是让你举个例子  拿例子说话  总比空讲要好一些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-2 10:47:37 | 显示全部楼层
c99不是可以定义动态数组了么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-2 10:48:52 From FishC Mobile | 显示全部楼层
是不让你改变数组长度,但是可以改变值啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-2 11:01:35 | 显示全部楼层    本楼为最佳答案   
C语言中数组在编译时就已经为分配好了内存空间,如定义int num[n],这个n你可以在数组定义之前对它随意赋值(一般是宏定义),但在编译时就已经是一个确定的数字了,不会改变了,即n=10相当于定义了一个int型长度为10的数组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-10 22:45:23 | 显示全部楼层

乌龟的屁股
语法规定咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 02:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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