私はこのようなC ++プログラムを持っています:
typedef struct _nodo
{
...
} node;
void cuenta(node& *Lista, char c);
コンパイルしてもエラーは表示されません。このコードをCプログラムに使用したい場合、コンパイラーは次のエラーを表示します。
error: expected ')'
void cuenta(node* &Lista, char c);
何の間の違い&
や*
C ++やCで?
node& *Lista
はnode
C ++の一部への参照へのポインタになりますが(ただし、C ++では不可能です)、参照型はCには存在しないため、Cでは無効な構文です。ところで、おそらくnode* &Lista
-ポインタへの参照を意味します。 -..。
したがって、Cでは、ポインターをポインターに渡します。たとえば、パラメーターnode**pLista
を宣言し、C ++の参照の*pLista
代わりに関数内のあらゆる場所で使用しますLista
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加