error : expected ';', '.' or ')' before '&' token in Code::Blocks
error : expected ';', '.' or ')' before '&' token in Code::Blocks
struct BinaryTree {
struct BinaryTree * left;
int data;
struct BinaryTree * right;
} ;
typedef struct BinaryTree * IntPtr;
void Add( IntPtr & head, int data ) { // error
scanf( "%d", &data );
head = new IntPtr;
head -> left = NULL;
head -> data = data;
head -> right = NULL;
} // Add()
为什么显示“错误:应为‘;’、‘.’或 ')' 在 '&' 标记之前 ?
int main( )
{
IntPtr head = NULL;
int data = 0;
Add( head, data );
} // main()
我不明白为什么会出错。我第一次使用Code::Blocks。
IntPtr & head
此语法不是 C 语言。引用仅存在于 C++ 中。如果你指的是一个指针,那么它是一个星号,而不是一个符号。
void Add( IntPtr & head, ...
head = new IntPtr;
好像是C++,在C中你不能使用那样的语法。您可以传递指针而不是使用引用(不要忘记分配内存)。
head -> left = NULL;
head -> data = data;
head -> right = NULL;
在 C 中,不能在变量和 ->
之间使用 space。您必须消除 space 如下所示:
head->left = NULL;
head->data = data;
head->right = NULL;
struct BinaryTree {
struct BinaryTree * left;
int data;
struct BinaryTree * right;
} ;
typedef struct BinaryTree * IntPtr;
void Add( IntPtr & head, int data ) { // error
scanf( "%d", &data );
head = new IntPtr;
head -> left = NULL;
head -> data = data;
head -> right = NULL;
} // Add()
为什么显示“错误:应为‘;’、‘.’或 ')' 在 '&' 标记之前 ?
int main( )
{
IntPtr head = NULL;
int data = 0;
Add( head, data );
} // main()
我不明白为什么会出错。我第一次使用Code::Blocks。
IntPtr & head
此语法不是 C 语言。引用仅存在于 C++ 中。如果你指的是一个指针,那么它是一个星号,而不是一个符号。
void Add( IntPtr & head, ...
head = new IntPtr;
好像是C++,在C中你不能使用那样的语法。您可以传递指针而不是使用引用(不要忘记分配内存)。
head -> left = NULL;
head -> data = data;
head -> right = NULL;
在 C 中,不能在变量和 ->
之间使用 space。您必须消除 space 如下所示:
head->left = NULL;
head->data = data;
head->right = NULL;