请问C++中,用数组作为函数形参和用指针作为函数形参,有什么不同?

请问C++中,用数组作为函数形参和用指针作为函数形参,有什么不同?望高手详细指点,真诚求指教!谢谢!... 请问C++中,用数组作为函数形参和用指针作为函数形参,有什么不同?望高手详细指点,真诚求指教!谢谢! 展开
 我来答
百度网友1466f1b
2010-11-03 · 超过14用户采纳过TA的回答
知道答主
回答量:170
采纳率:0%
帮助的人:46.7万
展开全部
还是有差别的 虽然大多数时候都可以相互用
最大的差别就是指针可以改变,可以通过指针改变指向内容的值,但数组名不行
举个例子:(分别作为形参)
int num[10], *p;
p = num;//此时p指向数组的第一个元素
我在主函数里调用两个函数
1 Sum(num);
2 Sum(p+2,10);
这就有区别了,因为num数组首地址它不能变化,但是此时p指向了数组的第三个元素,而且后面的那个10也是可以改变的,所以说用指针作为形参的时候要带一个int n 表示你要处理的数的个数,所以说用指针作为形参的话会给你一种假象,它的确是指向的数组的某个元素(这要看你的指针移动了,比如说p+2等等,数组名不能移动),但是它仅仅只是一个指针,你可以在调用的函数里用sizeof(num),sizeof(p)求它们的值,就知道为什么总是要加上一个int n了,因为如果不加的话函数就不知道你要操作的数的个数,另外别忘了传递数组和传递一般的int,double等类型是不一样的,传递数组传递的是原数组,函数的操作就改变了原来的数组,而传递一般的数只是传递它的拷贝,对原来的数没有影响;
还有什么不懂的继续交流~~~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式