0

嗨,我在函数中强调全局指针时遇到问题。这是我的代码

#include <iostream>

using namespace std;

void push_l(int n);


struct elem{ 
       int key; 
       elem *next;
} *left=NULL,*right=NULL;
void push_l(int n){
     elem *p=left;
     left=new elem;
     left->key=n;
     left->next=p;
     if (right==NULL)right=left;
} 

int main(){
  push_l(5);
  system "pause";
  return 0;
}

这是我收到的错误消息之一 - 在函数 void push_l(int) 中,左下划线

4

1 回答 1

2

这就是你得到的using namespace std;std也有left)。而你甚至不需要iostream. 引用 left是模棱两可的。

做这个:

#include <cstdlib>    

struct elem{ 
       int key; 
       elem *next;
} *left=NULL,*right=NULL;

void push_l(int n){
     elem *p=left;
     left=new elem;
     left->key=n;
     left->next=p;
     if (right==NULL)right=left;
} 

int main(){
  push_l(5);
  std::system("pause");
  return 0;
}
于 2013-09-17T18:37:18.463 回答