C++堆叠流行一般理论
C++ Stacks Pop General Theory
我对如何向下面的代码发送变量然后将该变量更改为堆栈顶部的值而不"返回"值感到困惑。 因此,如果 1 在顶部,我可以做 stack.pop(variable),然后变量等于 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 setNum(int &num) {
num = 4;
}
main(...) {
int myNum = 2;
setNum(myNum);
cout << myNum << endl;
}
您告诉编译器传递参数的地址,而不是其值。 为引用赋值时,它会更改该地址处的内存。 然后,当函数返回时,原始变量仍然指向相同的地址,因此它采用新值。
另一方面,当您声明一个接受值的函数时,例如
void leaveNumUnchanged(int num) {
num++;
cout << "The new value is " << num << endl;
}
该函数创建自己的参数私有副本,任何操作仅影响副本。
相关文章:
- c++binary_search函数排序数组(流行名称搜索)出现问题
- 流行"Debug Assertion Failed"
- 组合理论的一个问题
- 如何将理论效率与实践实例进行比较
- 什么形式上保证了非原子变量不能看到凭空出现的值,并像理论上原子一样创造数据竞赛?
- 使用求和预测算法的理论平均案例效率和增长顺序
- 如何使用 Z3 C++ API 来证明基于输入参数的理论
- const 是否允许在这里进行(理论)优化?
- C 在我的计算机上工作正常,但在Leetcode上获得地址消毒器堆越流行错误
- 在libc++和glibc中,解析doubles时字符串流行为不一致
- 测得的 fps 高于理论 fps
- 大整数增加,我知道理论..在实践中仍然生锈
- 流行的(c ++)"error: no matching function for call to ... ",虽然踢了一脚
- 理论和实际的矩阵乘法FLOP
- 内存使用的理论和问题
- 缓存优化理论
- 在Z3中构建自定义理论
- 自然数(递归)的设定理论定义
- 这是C ++程序领域中最流行的开源日志记录软件/程序
- C++堆叠流行一般理论