为什么不能将数组的值作为参数?为什么只能传递数组的首地址? [解决办法]数组除了初始化之外不能整体操作sizeof等编译期行为会把数组名作为数组本身来理解,在运行时,除了初始化之外,数组名被使用时会自动转化为指向首元素的指针在函数参数压栈之前,就把数组名作为一个指针来看待了[解决办法]
string 是可以传值的,我试过了。容器好像也是可以传值的,试没试我忘了。
Quote: 引用:数组有可能很大, 传值的话拷贝代价很高.而且参数要放栈里面, 栈大小有限的, 太大的数组拷贝直接就把栈溢出了.某些对象也可能很大,为什么对象就可以直接传值呢?
数组有可能很大, 传值的话拷贝代价很高.而且参数要放栈里面, 栈大小有限的, 太大的数组拷贝直接就把栈溢出了.