jjdp.net
当前位置:首页 >> stAtiC int C >>

stAtiC int C

这问题有点深了,大概讲一下,看你能不能听懂吧:首先,如果正规来讲,k开10肯定是不够的,比如120的因数有1,2,3,4,5,6,8,10,12,15,20,24,30,40,60,120,个数已经超过10了,因为如果不采用static声明,编译器将把k当作局部变量来对待,

int占一个机器字长.如果在32位系统中int占32位,也就是4个字节如果在16位系统中int占16位,即2个字节.short的大小始终为2字节

static是静态的意思,int是定义整型变量,加一起就是定义一个静态整型变量.

static是静态修饰符int整型修饰符整体的意思是静态的整型变量C,初始值是3

因为static变量也就是静态变量,在程序运行过程中被声明后就会一直保存在内存里,所以只能声明一次,第二次再访问那个函数时,给静态变量声明同时赋值的语句就不再执行了,而静态变量的值始终保存在内存里,也就是上次改变以后的值.没有static修饰的函数中的变量,只在函数被执行时占用内存,函数执行完毕后就被销毁,数据也就不存在了,所以每次都要声明,值也就不会变.

在main里面的区别不大,其它函数里面区别很大,static变量能保持上次调用后的结果,int在函数返回后就销毁了,下次调用又重新建立.

静态变量,就是下次调用这个变量的时候继续保持上一次的值~

static int a 你可以理解成全局变量,如果你是在类a中声明的,那么你无论new 多少个a, 那么你访问a.a,都共享同一个值.而 int a, 在不同的a实例里的值是独立的.

原因在 static int k=1; static 等于全局量,退出函数func,k 值保留更新后的值 不变.func(3); 使 k 等于 6,退出函数func,k 值保留6不变.func(5); 进入函数,k 初值为 6,不是 1 ,执行:6*5*4*3*2*1 得 720

static定义的变量存在与内存静态区,不赋值的话值为0int定义的变量在栈上,值不定,为乱码那样输入我认为会报错,我以前试过时是报错的,现在你这不报错的话,可能和编译器有关,但不会给i赋值,值维持原内存中的值

相关文档
bestwu.net | zxqs.net | bycj.net | 4405.net | ddgw.net | 网站首页 | 网站地图
All rights reserved Powered by www.jjdp.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com