鱼C论坛

 找回密码
 立即注册
查看: 1503|回复: 11

[已解决]静态变量报错

[复制链接]
发表于 2022-4-7 22:29:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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;
}
如上 , 报错 , 我该怎么改 , 求~
最佳答案
2022-4-7 22:32:38
//#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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-7 22:32:38 | 显示全部楼层    本楼为最佳答案   
//#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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-7 22:36:26 | 显示全部楼层
整个代码,除了你的引用不同标准C。其它代码都没问题 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-4-7 22:42:50 | 显示全部楼层

欸 , 为啥c++写这个不行啊
为啥啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-7 22:43:25 | 显示全部楼层
ba21 发表于 2022-4-7 22:36
整个代码,除了你的引用不同标准C。其它代码都没问题 。

唔 , 我用的c++
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-7 22:48:15 | 显示全部楼层

okok 我知道了 , count跟别的重名了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-7 22:48:42 | 显示全部楼层
本帖最后由 jackz007 于 2022-4-7 22:50 编辑

        全局变量不用声明 static,自然就是静态变量。只有函数内的局部变量才有必要声明 static,这样,声明过的局部变量就不会因为函数调用结束而消失。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-4-7 22:48:55 | 显示全部楼层
ount 改个名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-4-7 22:50:40 | 显示全部楼层
本帖最后由 柿子饼同学 于 2022-4-7 22:53 编辑
jackz007 发表于 2022-4-7 22:48
全局变量不用声明 static,自然就是静态变量。只有函数内的局部变量才有必要声明 static。


对哦 , 谢谢~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-7 22:53:39 | 显示全部楼层

好的 , 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-7 22:58:44 | 显示全部楼层
jackz007 发表于 2022-4-7 22:48
全局变量不用声明 static,自然就是静态变量。只有函数内的局部变量才有必要声明 static,这样,声 ...

请问 , 改成这样为啥报错了
#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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-7 23:28:42 | 显示全部楼层
本帖最后由 jackz007 于 2022-4-7 23:31 编辑
void p2(){
        c++;      // c 的定义呢?
}
        在 p() 中定义的静态变量 c 只是一个局部变量,属于 p(),不可以在另一个函数中进行访问,如果需要跨函数使用同一个变量,那就应该使用全局变量,而不是静态变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 00:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表