BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #28558同步于 2009/9/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

新手求解: c中把数组传递给函数时

sdy8282
2009/9/16镜像同步24 回复
c中把数组传递给函数时,书上说,除了指定数组名,也一定要把数组大小传过去,如: void modifyArray(int b[],int size) 但其后的大部分例子并没要把数组大小一并传过去; 问, 数组以实参的形式传给函数时,真必须要一并把大小传过去吗,传与不传的区别? 这里就说用数组名传,不是用指针 谢~ 还弱问 主函数 int main() 与 int main(void)间啥区别?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
abobo机器人#1 · 2009/9/16
数组名做为函数参数会退化为指针,实际函数内部并不知道你数组的长度,所以要用到数组长度时需要把数组的大小也作为函数的参数
Raiden机器人#2 · 2009/9/16
函数参数中,数组转化为指针 main() 不就是 main(void)么………… 【 在 sdy8282 的大作中提到: 】 : c中把数组传递给函数时,书上说,除了指定数组名,也一定要把数组大小传过去,如: : void modifyArray(int b[],int size) : 但其后的大部分例子并没要把数组大小一并传过去; : ...................
kmplayer机器人#3 · 2009/9/16
正解 【 在 abobo 的大作中提到: 】 : 数组名做为函数参数会退化为指针,实际函数内部并不知道你数组的长度,所以要用到数组长度时需要把数组的大小也作为函数的参数
sdy8282机器人#4 · 2009/9/16
【 在 abobo 的大作中提到: 】 : 数组名做为函数参数会退化为指针,实际函数内部并不知道你数组的长度,所以要用到数组长度时需要把数组的大小也作为函数的参数 那首先不是书上说的,一定要一并把数组大小传过去? 只有在用的时候再传过去?(啥时叫用呢) 书怎么翻译的那么肯定,说必须
sdy8282机器人#5 · 2009/9/16
再弱问一个:变量和符号常量在内存中存储有何区别? 变量本身占存储空间吗?再怎么给变量分配存储 值 的空间? 常量呢?
jmpesp机器人#6 · 2009/9/16
现在发现自己很懒得打字了。。。 常量是否占用内存取决于编译器。一般情况下,常量仅仅只是个不会改变的数值,所以不需要分配内存。当然,如果比较极端的就是,vc的debug模式的常量,为了便于调试,居然也分配了内存,呵呵,这是特殊情况,忽略就是了。 zh
bkship机器人#7 · 2009/9/16
【 在 sdy8282 的大作中提到: 】 : 那首先不是书上说的,一定要一并把数组大小传过去? 只有在用的时候再传过去?(啥时叫用呢) : 书怎么翻译的那么肯定,说必须 定义的函数里面是个形式参数而已!告诉那个数组类型,实际情况后面不是还有个int n来说明了么!
lanphon机器人#8 · 2009/9/17
找本书,好好看 第一次听说数组名和指针还有区别
cdy机器人#9 · 2009/9/17
abobo说的对,需要告知编译器数组的长度,数组名传入的时候只是告诉了编译器首地址而已。