C++ 在单个循环中声明多个变量(C+;+;)

C++ 在单个循环中声明多个变量(C+;+;),c++,arrays,variables,C++,Arrays,Variables,好了,伙计们,我的问题是,我要声明24个变量。我可以用这句话: string p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 ,p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23; 但是,这似乎不是正确的方法,所以我尝试使用一个循环来为我做这件事 for (int i = 0;i<=23;++i) { char b = i; string p[b];

好了,伙计们,我的问题是,我要声明24个变量。我可以用这句话:

string p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 ,p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23;
但是,这似乎不是正确的方法,所以我尝试使用一个循环来为我做这件事

for (int i = 0;i<=23;++i)
{
    char b = i;
    string p[b];
    p[b] = "-";
    cout << p[b];
}

for(int i=0;i在循环中第一次,数组是“大小为零”,然后您访问一个超过数组末尾的元素。

您正在访问一个超出边界的数组

string p[b];
p[b] = "-";
您正在声明一个包含
b
元素数的数组,因此有效索引的范围为0到
b
-1
。但随后您尝试在
b
位置进行索引

另外,循环
b
中的第一次为零,不允许使用大小为0的数组。

您试图为数组中的每个元素“命名”。您只是不能这样做


只需创建一个大小为24(从0到23)的数组,不要像现在这样尝试“命名”每个元素,您的元素将是
p[0]
p[1]
。直到
p[23]
很难知道您在代码中试图做什么。下面是我的最佳猜测:

string p[24];// this allocates your 24-string array

for (int i = 0;i<24;++i)
{
    p[i] = "-";
    cout << p[i];
}
string p[24];//这将分配24字符串数组

对于(int i=0;i不清楚您想做什么。。 看来,你是试图打印下面的行使用C++编程:< /P>
"string p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 ,p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23;"
而不是在您自己的代码中实际使用这些变量声明。。 您正在编码以生成另一个代码吗

for (int i = 0;i<=23;++i)
{
    char b = i;
    string p[b]; // why do you declare like this? 
    p[b] = "-";
    cout << p[b];
}

for(int i=0;i“工作但立即崩溃”=不起作用。正如你所看到的,所以对新手不太友好。尽管很明显你是一个刚刚起步的程序员,但我很久以前也经历过这一点,你这类人是第一个被否决提问的人。那么为什么不使用数组呢?这正是数组存在的原因。在发布之前应该考虑更多,我的错在这里。至少你会得到有用的答案。对初学者的反对票通常是因为初学者不知道如何提出好的问题。这是初学者的自然结果。好问题是指能够帮助未来访问者的东西。很抱歉,我不清楚,p不是数组。我想创建变量p0,然后是p1,等等在循环中向前,但我不知道如何表示“p”后面的字符正在变化(变量也在变化)对于每个循环。@user3258512
p
是一个数组,您这样声明。谢谢,我当时需要的唯一答案是,有人得到了。@user3258512我想不出您为什么要用特定的方式“命名”一个变量。使用数组可以实现这一点,但变量名不是
p0,p1,p2…
而是
p[0],p[1],p[2]..
for (int i = 0;i<=23;++i)
{
    char b = i;
    string p[b]; // why do you declare like this? 
    p[b] = "-";
    cout << p[b];
}