C++指针的问题

来源:百度知道 编辑:UC知道 时间:2024/09/19 16:09:07
做了两个程序,都是迭代,一个是数组,另一个是用指向数组的指针,两个程序参数、公式模型都一样,然后我掐着时间计算,总感觉计算时间差不多,似乎感觉不到指针的高效率,在分步调试的时候看到指针的显示值是地址,而数组的显示值是计算出来的数字。可是时间上总感觉差不太多。我知道指针是C的灵魂,可是在这个迭代的时候总感不到有多快,请高手指点。两个程序都迭代1720次,没有调用函数,所有计算全在main函数里,编译器是VC++6.0。我没学过数据结构,是否与数据结构有关。

这么说吧,指针是以后数据结构的基础,比如单链表,双链表,二叉树等等等等,全部都时指针做的,还有1720次对于现在的计算机来说,是个很小很小很小的数量级。指针学好了受益匪浅,并且也是编程今后必须的。指针的确是可以大大提高效率,但是要看你怎么用,就和递归算法一样,另外,显示地址是你语句的问题。
比如int * a;
你call指针a的值时要加&
如cout<<&a;//这是输出值
cout<<a;//只是输出地址
有问题继续问啊,哈哈~我看到了一定回答你~

指针不是用来加速运行速度的,而是用来加速编程过程的。
实际上指针隐含寻址过程,所以不要用你这样的例子来体现指针的优越性。

晕。。楼上的所说都不错,只是和这个问题无关

起始数组不过是常量指针而已。。。编译后速度差不多简直是一定的

理论上直接使用指针确实比数组(使用运算符[ ])要快一些。不过我觉得这不是迭代次数多一点就可以由人察觉出来的。只是说内存寻址和存取更快了一些。
可以试着包含进去时间头文件,在程序的头尾分别记下当时时间,然后计算出时间差。(我写过的汉诺塔确实运行了几秒钟,10个盘子,都是函数调用,不过没试过计算时间)