回顾《C++ Primer》第十章:当数组作为函数参数时
发布时间
阅读量:
阅读量
当我们考虑将数组作为实参传递时, 人们通常会意识到, 由于数组无法进行拷贝操作, 因此在传递参数时无法真正获得真实的参数集合。此外, 当使用数组名称的时候, 我们可能会遇到其他相关问题或限制情况
处理
引用数组参数则是可以实现真正的数组传递的。
一、非引用数组形参,[]和长度值的作用
在将数组用作函数参数时,在这种情况下,在编程语言中使用方括号([])来表示指针数据类型是一个重要特征之一。其中一种情况是...另一种情况则...
void func(int array); //参数类型为int
void func(int array[]); //参数类型为int*
另外,长度值是没有任何意义的,编译器会直接忽视它。因此,下面三种方式是相同的:
void func(int *);
void func(int []);
void func(int [10]);
长度值毫无价值且存在歧义性,在函数中应用它们普遍认为存在风险或潜在问题。
总结:当编译器在进行关联性检查时(即处理数组形参与实参的对应关系),它仅会验证实参是否为指向的对象(即是否存在指向),以及该对象所指针类型的匹配情况(即确定指针类型的一致性);同时还会确认数组元素的数据类型是否一致(即数据类型的匹配)。这种机制不会
全部评论 (0)
还没有任何评论哟~
