C++ C++;一般理论
我不明白下面的代码如何发送一个变量,然后在不“返回”值的情况下将该变量更改为堆栈顶部的值。所以,如果1在顶部,我可以执行stack.pop(变量),然后变量将等于1C++ 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 <<
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我现在明白了。所以我们引用的是内存地址而不是实际值。啊,我现在明白了。所以我们引用的是内存地址而不是实际值。