为什么用指针作为函数的形参比数组要快??
时间:2011-12-17
来源:互联网
为什么用指针作为函数的形参比数组要快??传进的实参是数组。
最近在POJ上做了一个字符串的题目,题目已AC,但速度却是别人的好几倍。
其中就是一个子函数的形参问题:请看代码:
这两个函数的功能一样的,
就是函数的参数不一样,一个是(char strDest[])另一个是(char *strDest)
我的问题是,用数组做为形参,隐含意思不就是指针吗?但速度为什么明显比(char *strDest)参数低呢???
哦,对了,调用这个函数时,传入的实参是数组。
哪位精通 C++ 指针数组内存的指点一下下哈~~~
C/C++ code
void str_con(char strDest[], const char stra[], const char strb[]) // 用这个函数要近 1s { int ti = 0; for(int i = 0; stra[i] != '\0'; i++) strDest[ti++] = stra[i]; for(int i = 0; strb[i] != '\0'; i++) strDest[ti++] = strb[i]; strDest[ti++] = '\0'; } void str_con_ptr(char *strDest, const char *stra, const char *strb) /这个是400ms 用指针作为形参要比数组快一倍 { int ti = 0; for(int i = 0; stra[i] != '\0'; i++) strDest[ti++] = stra[i]; for(int i = 0; strb[i] != '\0'; i++) strDest[ti++] = strb[i]; strDest[ti++] = '\0'; }
作者: gucheng789 发布时间: 2011-12-17
你讲的一点也不靠谱!
因为这两者在被编译器编译之后的代码是一样的,没有差别。
如果你是两个函数先后运行的话,那么请你吧第二个函数放到前面去执行,而第一个函数放到后面去执行,然后你再看看时间差别。
因为这两者在被编译器编译之后的代码是一样的,没有差别。
如果你是两个函数先后运行的话,那么请你吧第二个函数放到前面去执行,而第一个函数放到后面去执行,然后你再看看时间差别。
作者: mougaidong 发布时间: 2011-12-17
贴main()代码看看
作者: yisikaipu 发布时间: 2011-12-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28