我有一個函數將一個迭代器傳遞給一個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