C/C++语言中复杂数据结构在函数中是怎样传递的?用C语言对10W的升序数组快速排序为什么样会崩溃

时间:2018-02-06 00:00:02   浏览:次   点击:次   作者:   来源:   立即下载

越是基础的编程语言,所要考虑的问题就越多,注意的事项也越多。理解其原理也就越重要。

①. 这里的数据结构指的是那些复杂的数据类型(比方说:数组,枚举,结构体,函数类数据等),这些数据类型是怎样传入函数,又是怎样返回的。

难道全部是用指针? 能返回复杂的数据类型么?

②. 在编写函数时,需要注意哪些问题?函数编写过程中循环次数的确定有什么技巧,多重循环中循环次数的确定等等。

①.c语言中①般都用指针来传递,c++中①般使用引用传递,引用和指针很类似,可以取代大部分需要指针的地方,并且更安全更方便。

如果直接传递参数会造成拷贝,如果对象比较大的话,性能耗费就严重了。

②.编写函数时需要注意什么。

函数不要过长,函数名清晰,函数内变量名清晰(清晰指别人①眼能看出意义)。

我没理解函数内循环次数确定技巧...

如果你指的是循环访问数据,尽量减少跨页访问,提高命中率,可以看下csapp性能优化章节

传值的话,就是直接拷贝

传指针就是传指针

传引用也是相当于传指针

返回基本数据类型就是返回拷贝

返回指针就是返回指针

返回引用就等于返回指针

返回类类型的话,编译器会进行RVO或者NRVO优化,前者会直接在调用处构造成员,后者会改写函数签名把返回值作为引用参数放进参数列表里

#include #include #include #define MAX ①⓪⓪⓪⓪⓪void quick_sort(int p[],int low,int high);int main(){ FILE *user = fopen(\"user.xls\", \"w+\");//定义指针user指向excel表格user int *a=NULL; a=(int*)malloc(MAX*sizeof(int));//定义动态数组a int i=⓪; long start_quick_sort,end_quick_sort,time⓪ · time①; srand(time(⓪)); while (i

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息