首页 > 编程知识 正文

java访问修饰符的区别,副词修饰动词和修饰句子的区别

时间:2023-05-03 15:40:11 阅读:278778 作者:4510

c++分栏的博客很多都是我原来大一的时候搞混的知识经过从新学习或者新掌握的,如果有什么不对欢迎大家指正

相信大家都有自己学过其他编程语言,比如java,所以自然对static是有一定了解的。在java中static表示的是静态的意思比如程序的入口就是static void main(int args[])。

但是在c语言中static则有意想不到的含义,static表示的是当前文件私有的意思,并且生命周期是到文件结束,在C语言中如果要定义能够被外部引用的变量则需要用到extern修饰符

static变量如果未进行人为的初始化将会自动初始化为0,在人为的初始化之后则这个初始值不能被修改,而普通变量未进行初始化则是随机值,这个随机值取决于上次这块内存的值为多少

static在c++中的扩展:

当然就是在类中的扩展了,之前有说过C是C++的子集,在类中的数据成员或者成员函数声明的时候前面加了static,则这个数据成员是整个类共有的,而不是属于某个实例的。

而且这个数据成员要在类外进行初始化,未进行初始化则自动为0,因为static变量的生命周期比类的生命周期可能更长(可能在类之前就要用到),所以需要在类外进行初始化。

那么静态成员函数呢:

静态成员函数也是整个类共有的,不属于任何一个实例,静态成员函数没有this指针,(this指针是指向对象本身),另外,静态成员函数指针调用静态成员变量

那么const呢:

const表示变量不可改变,也就是常量,const不像static,const数据在超出作用域范围后就会被释放,比如在一个函数中定义的常量。

另外还想介绍一下指针常量和常量指针:

指针常量:

基本定义方式 :int * const ptr=&b;

含义:ptr指向的位置不能变,就是说ptr只能指向这块内存了

常量指针:

基本定义方式:const int * ptr=&b;或者int const * ptr=&b;

含义:代表ptr不能修改指向内存上的值,即使指向的那块内存并不是常量,比如:int b;const int * ptr =&b;则不能通过*ptr=value来修改b的值,但是我们可以通过b=15来修改

所以常量:指针常量是(&ptr为常量);常量指针(*ptr为常量)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。