Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;一般理论_C++_Stack - Fatal编程技术网

C++ C++;一般理论

C++ C++;一般理论,c++,stack,C++,Stack,我不明白下面的代码如何发送一个变量,然后在不“返回”值的情况下将该变量更改为堆栈顶部的值。所以,如果1在顶部,我可以执行stack.pop(变量),然后变量将等于1 void DynIntStack::pop(int &num) { StackNode *temp; // Temporary pointer // First make sure the stack isn't empty. if (isEmpty()) { cout <<

我不明白下面的代码如何发送一个变量,然后在不“返回”值的情况下将该变量更改为堆栈顶部的值。所以,如果1在顶部,我可以执行stack.pop(变量),然后变量将等于1

void DynIntStack::pop(int &num)
{
   StackNode *temp; // Temporary pointer

   // First make sure the stack isn't empty.
   if (isEmpty())
   {
      cout << "The stack is empty.\n";
   }
   else  // pop value off top of stack
   {
      num = top->value;
      temp = top->next;
      delete top;
      top = temp;
   }
}
void DynIntStack::pop(int&num)
{
StackNode*temp;//临时指针
//首先确保堆栈不是空的。
if(isEmpty())
{
库特值;
温度=顶部->下一步;
删除顶部;
顶部=温度;
}
}

这是一个通过引用传递的参数

您可以将其视为传递实际参数,而不仅仅是值。对参数所做的任何修改都会反映到原始变量,因为它们是同一个变量


实际上,该参数是指向实际值的内存地址的引用(指针)。

这是一个通过引用传递的参数

您可以将其视为传递实际参数,而不仅仅是值。对参数所做的任何修改都会反映到原始变量,因为它们是同一个变量


实际上,参数是一个引用(指针),指向实值的内存地址。

当您调用一个引用函数时,例如

void setNum(int &num) {
  num = 4;
}

main(...) {
  int myNum = 2;
  setNum(myNum);
  cout << myNum << endl;
}
void setNum(int&num){
num=4;
}
主要(…){
int myNum=2;
setNum(myNum);

cout调用引用函数时,例如

void setNum(int &num) {
  num = 4;
}

main(...) {
  int myNum = 2;
  setNum(myNum);
  cout << myNum << endl;
}
void setNum(int&num){
num=4;
}
主要(…){
int myNum=2;
setNum(myNum);

CUT你懂C++的引用吗?是的,但也许我不理解它正确。你需要看看通过引用与通过值的关系……GEKESOAUR:那条评论本身是没有用的。你至少应该包括一个关于这个主题的提示,或者更好的,链接到相关的文档。维基百科解释得很好:“你懂C++参考吗?是的,但也许我不理解它正确。你需要看过关引用与通过值”…GEKEOSAOR:这条评论本身是没有用的。你至少应该包括一个关于这个主题的提示,甚至更好的,链接到相关的文档。维基百科解释得相当好:AHH我现在明白了。所以我们引用的是内存地址而不是实际值。啊,我现在明白了。所以我们引用的是内存地址而不是实际值。