永发信息网

C语言静态变量初始化的新手问题

答案:4  悬赏:0  手机版
解决时间 2021-02-09 03:50
C语言静态变量初始化的新手问题
最佳答案
静态变量在编译的时候初始化,所以初值必须是常量(可以是常数、定义成常数的宏、C++编译器中用const修饰的常量),静态变量不能用变量赋初始值,但在运行时是可以用变量赋值的。追问那有没有什么办法。。我知道他只会初始化一次,我就是说这一次初始化又没什么办法用个变量。
void printmon(int n)
{ extern int l;
static int k=l;
就这一点追答首先要问你为什么要用一个全局变量去初始化局部静态变量,全局变量破坏了程序的模块化,其次你直接使用那个全局变量行不行,再者既然已经使用了全局变量I那再多使一个全局变量k也无妨,最后也可以使用一定的技巧解决你的问题。
void printmon(int n)
{
//这里保持原来的代码.
static int k=0;
static int flag=0;

if(flag==0)
{
k=I;
flag=1;
}
//这里保持原来的代码.
}
全部回答
静态变量赋了一次值后,再次调用所在函数不再次赋值,沿用上次的值
变量I除非也是静态的,如果I可变你把它赋值给静态变量,那么静态岂不是没用了
很简单:我把静态变量初始化那点的l换成个1就不出错,从这一句中看出你把初始化的值看错了,也就是初始化的应该是一个1(数字一),而不是字母l(字母le) 明白了把。
你提供的初始值提供错了,
你的题中好像是用前面定义的一个变量来给他提供初值的。但是这不行的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
医颜医疗美容门诊部地址在哪,我要去那里办事
我趣购官方线下体验店怎么去啊,有知道地址的
申嘉湖高速去崇明一共收费多少
80V恒流3A充电器给48V20A的铅酸电池充电是什
oracle xe怎么配置环境变量
灵之水医疗美容怎么去啊,我要去那办事
请问网站的运营机构、运营特点、模式、网站的
门前水井吉不吉?
团结大排档在什么地方啊,我要过去处理事情
织布座椅改包真皮座椅影响侧气囊弹出吗
经典宝来变速箱坏了什么现象
淘宝收货手机号和淘宝注册手机号一样吗?
御颜医疗美容地址在什么地方,想过去办事
【用户信息】“用户信息”可以理解为在用户使
上海科发源植发医院地址在什么地方,想过去办
推荐资讯
地层接触关系的三种接触关系分别代表的地质意
谁能告诉我在宏程序if语句中总有一句类似于#3
请问“近亲结婚”指的是什么?
美食美客亮子烧烤在什么地方啊,我要过去处理
中国邮政储蓄银行(黄泥支行)地址有知道的么?
新疆广澳建设工程有限公司龙腾分公司我想知道
广西计划在2012年至2015年期间筹措上百亿资金
四季伊人美容养生会所地址在什么地方,想过去
府谷县昊驰工贸有限责任公司我想知道这个在什
潘超宾馆地址在什么地方,想过去办事
方正县哈尔滨晨光烧饼(亮珠河街)地址在哪,我
城固考试培训基地这个地址在什么地方,我要处
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?