这是一道面试题:
有什么区别int []
and int*
,它们都是函数的输入参数。
f(int a[] , int* b)
我的回答:
For f()
,它们具有相同的功能。第一个是第一个元素的开始位置a[]
.
第二个指向一个int
.
但是,如何在不传递其他参数的情况下区分它们呢?
作为函数参数,两种类型完全相同,int []
被重写为int *
,并且你无法区分它们。 StackOverflow 中的许多问题都涉及这个主题,并且c-faq http://c-faq.com/甚至有一个特别部分 http://c-faq.com/aryptr/index.html关于指针和数组(作为参数或不作为参数)。仔细看看。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)