55问答网
所有问题
C++为何两次输出不一样?
如题所述
举报该问题
推荐答案 2022-04-26
A B C三个类在每次生成类的实例的时候才会产生输出,在func方法中,每次都会进行类实例的声明,其中A和C声明的是局部变量,func运行结束即被收回(生命周期),而B声明的静态变量,除非主动释放掉,是会一直存在的,第二次运行func时,B不会产生新的实例,也就没有输出。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://55.wendadaohang.com/zd/IGQQcFL84cRR8L8QGRR.html
其他回答
第1个回答 2022-04-26
尽量避免定义static变量,尤其当你不懂static时干嘛的
第一次进入func,static B b会初始化一次.后续再进入func后,b就会复用前面的初始化,不再重新初始化新实例了.这时static变量的基本行为特征
相似回答
c++
遇到一个问题求解决,
为什么会
有两种
不同
的结果,新手,求帮助_百度...
答:
第一个
输出1
,第二个输出10 原因为:第一个的 cout<<(c1>i1)?i1:i2; 没在最外层加括号,而 << 运算符的优先级比 ? 要高,所以先判断出c1 > i1 为真(1),然后执行cout<<1; 输出1 第二个加了括号,因c1 > i1为真,所以结果为 i1 的值,即10 然后再 cout<...
c++
,
为什么输出
结果
不一样
呢?
答:
第二个程序两个char连着
输出
,0x81 0x80 由于高位是1,所以被两个字节被当成一个汉字输出了
这个
C++
程序,
为什么
第一个能
输出
正确结果,而第二个程序错误?
答:
这是“数组降阶”导致的,就是说当数组被当作参数传递时,编译器只会传数组的第一个元素的地址而不是复制整个数组。所以 int length(int a[]);等同于int length(int *a);你要在函数中得到数组元素的个数,有以下几种方式:把个数当作参数传递进去,比如 void foo(int *a,int n);使用“数组...
为什么两次输出
的i值
不同?
本人初学
C++
请各位大虾们指教。
答:
char buf[4];因为数组只有4个字符的空间 strcpy将AAAA\0 五个字符拷贝给了buf,造成数组越界 冲掉了i的数据 把buf的大小改大一点,比如20,就好了,这样就不会越界了
C++
中
为什么
这两个
输出
的结果
不一样
答:
前者先把22和7都当成了int,所以用int类型的计算方法,即取整,22/7=3,然后将3转为double类型赋值给x;后者把22.0看成double,用double的计算方法,自然就会有小数了
大家正在搜
连续输出一个变量两次的值不一样
VB怎样让程序不一样输出结果一样
相同输出为1不同输出为0
传影输出两次大小不一样
每次连着量两次体温都不一样
pr中源为什么和输出大小不一样
两次测试结果不一样
两次鉴定不一样怎么办
两次彩超结果不一样
相关问题
C++问题,两个程序为什么输出结果回事不一样的?
求问这两段C++代码为什么会输出不一样的结果
C++,没改程序,却两次不同的输出
c++,为什么输出结果不一样呢?
【小白】c++ 为什么两个字符串两种输出结果不同?
一个初级的C++疑问,为什么输出不一样..............
C++中,为什么输出的值不一样(如图)cout<<" r的内...
c++编译器输出答案的时候输出两遍怎么回事?