我有一个函数将一个迭代器传递给一个char *缓冲区(它也是一个char *)。该函数需要递增迭代器。无论如何,我发现passsing迭代到函数的好方法是通过引用传递指针:在C++中通过引用传递指针
bool myFunction(unsigned char * &iter)
{
...
不过,我听说这是不好的形式,并可能导致的问题。这里是方法,我的同事建议我用:
typedef unsigned char * unsignedcharptr;
bool myFunction(unsignedcharptr &iter)
{
...
它看起来对我来说,他们都做同样的事情。这两种方法之间是否存在编译器差异(我正在使用Visual Studio 2005)?哪个是对的?
我宁愿考虑指针类型的类型定义不好的形式会引起问题,但远,编译器有ISN没有什么区别。 – 2012-02-10 16:53:39
为什么不通过修改指针而返回一个增量距离? – Anycorn 2012-02-10 16:54:45
语义上没有区别,但是第二个是主要的,字体很容易阅读。 – 2012-02-10 16:55:02