静态变量报错
#include <bits/stdc++.h>using namespace std;
static int count = 0;
void p();
void p2();
void p(){
count++;
}
void p2(){
count++;
}
int main(){
p();
p2();
printf("%d", count);
return 0;
}
如上 , 报错 , 我该怎么改 , 求~ //#include <bits/stdc++.h>
#include <cstdio>
//using namespace std;
static int count = 0;
void p();
void p2();
void p(){
count++;
}
void p2(){
count++;
}
int main(){
p();
p2();
printf("%d", count);
return 0;
}
整个代码,除了你的引用不同标准C。其它代码都没问题 。 人造人 发表于 2022-4-7 22:32
欸 , 为啥c++写这个不行啊
为啥啊 ba21 发表于 2022-4-7 22:36
整个代码,除了你的引用不同标准C。其它代码都没问题 。
唔 , 我用的c++{:10_254:} 人造人 发表于 2022-4-7 22:32
okok 我知道了 , count跟别的重名了 本帖最后由 jackz007 于 2022-4-7 22:50 编辑
全局变量不用声明 static,自然就是静态变量。只有函数内的局部变量才有必要声明 static,这样,声明过的局部变量就不会因为函数调用结束而消失。 ount 改个名 本帖最后由 柿子饼同学 于 2022-4-7 22:53 编辑
jackz007 发表于 2022-4-7 22:48
全局变量不用声明 static,自然就是静态变量。只有函数内的局部变量才有必要声明 static。
对哦 , 谢谢~ ba21 发表于 2022-4-7 22:48
ount 改个名
好的 , 谢谢
{:10_254:} jackz007 发表于 2022-4-7 22:48
全局变量不用声明 static,自然就是静态变量。只有函数内的局部变量才有必要声明 static,这样,声 ...
请问 , 改成这样为啥报错了{:10_254:}{:10_266:}#include <bits/stdc++.h>
using namespace std;
void p();
void p2();
void p(){
static int c = 0;
c++;
}
void p2(){
c++;
}
int main(){
p();
p2();
printf("%d", c);
return 0;
}
本帖最后由 jackz007 于 2022-4-7 23:31 编辑
void p2(){
c++; // c 的定义呢?
}
在 p() 中定义的静态变量 c 只是一个局部变量,属于 p(),不可以在另一个函数中进行访问,如果需要跨函数使用同一个变量,那就应该使用全局变量,而不是静态变量。
页:
[1]