在“循环”中声明变量;如果;陈述 我对C++非常陌生,所以对混乱的代码和/或问题的不实用性表示歉意。基本上,我正在尝试编写一个程序,可以将以前定义的变量与新版本进行比较,我将把以前的整数值保存为虚拟变量(tv),然后与新版本进行比较,但是这需要从“if”中去掉旧变量的值语句,并在同一函数中再次使用它 我为根宏编写这个,但是它也是一个普通的C++问题,因此我在这里问。

在“循环”中声明变量;如果;陈述 我对C++非常陌生,所以对混乱的代码和/或问题的不实用性表示歉意。基本上,我正在尝试编写一个程序,可以将以前定义的变量与新版本进行比较,我将把以前的整数值保存为虚拟变量(tv),然后与新版本进行比较,但是这需要从“if”中去掉旧变量的值语句,并在同一函数中再次使用它 我为根宏编写这个,但是它也是一个普通的C++问题,因此我在这里问。,c++,C++,简言之,这可能吗 #include <iostream> #include <string> using namespace std; int n = 2; void test1(); void test2(string *q,int *x){ cout << *q << endl; cout << *x << endl; if (n==2){ int tv = *x;

简言之,这可能吗

#include <iostream>
#include <string>

using namespace std;

int n = 2;

void test1();

void test2(string *q,int *x){
    cout << *q << endl;
    cout << *x << endl;

    if (n==2){
        int tv = *x;
        n++;
        test1();
    }
    if (n>2){
        cout << "testvar = " << tv << endl;
    }
}

void test1(){
    int var = 20;
    string sar = "generic string";
    test2(&sar,&var);
}

int main(){
    test1();
}
#包括
#包括
使用名称空间std;
int n=2;
void test1();
void test2(字符串*q,int*x){
试试这个:

void test2(string *q,int *x){
    static int tv;
    cout << *q << endl;
    cout << *x << endl;

    if (n==2){
        tv = *x;
        n++;
        test1();
    }
    if (n>2){
        cout << "testvar = " << tv << endl;
    }
}
void test2(字符串*q,int*x){
静态int电视;

你展示的代码是否有效,你只是在问风格/架构,或者你在代码中遇到了什么问题?循环在代码中的什么地方?如果你想让函数包含状态,你需要使用一些静态变量或使它成为类的一部分。或者你可以将状态作为一个额外的参数传递给调用方留着它。它不起作用,因为我还没有想出一个“返回”的方法(因为缺少更好的词)变量“vs”来自第一个if语句。感谢您的建议,我将进行一些研究-我尝试查看静态变量,但似乎产生了类似的错误?注意:您也可以在test2中使
n
静态。谢谢,我尝试将其放入,但在函数的第二次运行时,它仍然采用tv=0的值?这是一个任务吗ion或语句?我正在询问是否将其放在正确的位置!在test2函数的第一部分中,在if语句之前,对吗?它必须在if之前,因为它在两个if语句中都使用。并且不要在if.int tv=*x;中再次声明它,``变成just tv=*x;`或者它将仅为if内部创建第二个tv变量。它必须是静态的,以便在函数调用中被记住。